我是新來的顫振。正在練習 google 帳戶登錄。當我定義 GoogleSignInAccount 時,出現錯誤:“A value of type 'GoogleSignInAccount?' 不能分配給“GoogleSignInAccount”型別的變數。”
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
其他人說我們可以使用“?” 來解決這個問題。有用。但是,彈出另一個問題:“屬性'authentication'不能無條件訪問,因為receiver可以是'null'。”
final GoogleSignInAccount? googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
任何建議都會很棒。泰
uj5u.com熱心網友回復:
您會收到該警告,因為googleUser有一個可為空的型別 ( GoogleSignInAccount?) 以便在 googleAuth 中使用它,您可以使用像這樣的bang (null-aware) 運算子對其進行標記googleUser!.authentication;。但是,僅當您 100% 確定這永遠不會為空時才使用該方法,在這種情況下,如果可能,您可以簡單地使用不可為空的型別(不帶“?”)。
或者,您可以使用control flow statements僅在使用非空值初始化 googleUser 后初始化 googleAuth。
例如這樣的空檢查:
if(googleUser !=null) {
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
}
更多背景:
您收到錯誤的原因是:"A value of type 'GoogleSignInAccount?' can't be assigned to a variable of type 'GoogleSignInAccount'."它 _googleSignIn.signIn();具有可為空的回傳型別'GoogleSignInAccount?'(因為它可能會失敗并且不回傳用戶),因此您不能將其分配給具有該型別的不可為空的變數'GoogleSignInAccount'.
僅供參考:在 _googleSignIn.signIn(); 周圍添加空檢查很可能更有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/409831.html
標籤:
上一篇:WebRTC(使用gstreamer和webrtcbin)適用于VP9,但不適用于H264
下一篇:未知操作st
