[英]google_sign_in Flutter plugin always returns null serverAccessCode
[英]Flutter google sign in null
經過幾個小時的調試而沒有任何結果,我放棄了。 我一直在通過創建連接到Firebase實時數據庫的應用程序來學習Flutter,該數據庫在調試模式下工作,通過adb本地安裝。 但每當我(或我的任何朋友)通過adb之外的其他東西(例如包管理器或其他東西)安裝包時,我就會遇到問題。
首先,這是pubspec.yaml的相關部分:
dependencies:
google_sign_in: 3.2.1
firebase_auth: 0.5.20
firebase_core: 0.2.5
在我的有狀態小部件的開頭:
final FirebaseAuth _fAuth = FirebaseAuth.instance;
final GoogleSignIn _gSignIn = new GoogleSignIn();
final DatabaseReference database = FirebaseDatabase.instance.reference().child("users");
以及我的代碼的相關部分:
googleSignInAccount = await _gSignIn.signIn(); // [1]
authentication = await googleSignInAccount.authentication; // [2]
...
_firebaseUser = await _fAuth.signInWithGoogle(
idToken: authentication.idToken,
accessToken: authentication.accessToken);
...
所以問題是,使用舊的3.0.5版本的google_sign_in包,我得到錯誤:
PlatformException(sign_in_failed, Status{statusCode=CANCELED, resolution=null}, null)
已經在點[1],即使登錄對話框從未被取消,只需在選擇要使用的Google帳戶之后。 這在調試模式下永遠不會發生,就像谷歌在登錄時拒絕生產應用程序一樣。 當我將google_sign_in包更新到版本3.2.1時,我在點[2]處收到以下消息:
NoSuchMethodError: The getter 'authentication' was called on null.
Receiver: null
Tried calling: authentication
這意味着步驟[1]不再導致錯誤,但只返回null,因此它在步驟[2]失敗。 我在調試模式下沒有這個問題,所以登錄流程應該沒有問題。
注意:我確實使用了本地簽名密鑰庫,但我從來沒有遇到任何問題。 注2:我也向他們提出了一個問題,因為我找不到任何看起來像我的問題的東西,請看這里 。
請參閱問題頁面( 此處 ),通過更新到google_sign_in版本3.2.2解決了這個問題,這給出了明確的錯誤,所以我實際上可以解決這個問題。
最后這與flutter本身無關(雖然它和google_sing_in庫沒有幫助)但與密鑰庫有關。 永遠是keystore。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.