最近的專案需要使用google sign in,因此使用了google_sign_in這個套件。
照著tutorial實作後,卻發現在user sign in後,拿到的idToken是null。
google過後,發現有些人一樣遇到相同問題,但大部分人的解決方法都是在android/build.gradle和/android/app/build.gradle中添加下面的程式碼。
// ..android/build.gradle
dependencies {
// ... other dependencies
classpath 'com.google.gms:google-services:4.3.8'
}
}
// ../android/app/build.gradle
apply plugin: 'com.google.gms.google-services'
參考來源: Getting idToken 'null' when using google_sign_in in Flutter
但照做後發現依然拿不到idToken。
後來發現這個解法僅適用於有使用Firebase的情況,但我的專案並沒有使用Firebase,所以無法解決。於是繼續爬文,就在套件的issue頁面找到了順利解決的方法。
將上個步驟中複製的clientId,結合下面的語法,貼到android/app/src/main/res/values/strings.xml檔案中(如果沒有這個檔案,就自己建立一個)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="default_web_client_id">你的client貼在這</string>
</resources>
在android/app/build.gradle檔案中的dependencies部分,添加下面程式碼。
implementation 'com.google.android.gms:play-services-auth:20.4.1’