簡體   English   中英

撲動谷歌登錄null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM