這應該很容易,但我已經被困了好幾個小時了。
情況:如果用戶未獲得授權,我正在嘗試執行signOutProcess注銷 Firebase。我在 Firestore 中設定了一個欄位,1 表示已授權,0 表示未授權。它列印出正確的結果,如果我洗掉該陳述句,我可以讓它退出,if但這違背了目的。
問題:當檢索到嵌套值時,如何讓if陳述句執行?signOutProcess
void getUserAuthorization () {
String uid = firebaseAuth.currentUser!.uid;
print('this is uid $uid');
FirebaseFirestore.instance
.collection('Users2022')
.doc(uid)
.get()
.then((DocumentSnapshot documentSnapshot) async {
dynamic nested = documentSnapshot.get(FieldPath(['Authorized']));
print('this is the authorization condition $nested');
if (nested == 0) {
signOutProcess();
}
});
}
uj5u.com熱心網友回復:
您得到的值可能是'0'而不是0,即它是一個字串!
它不會等于那個數字0,而是你必須寫if (nested == '0').
你可以試著print(nested.runtimeType)看看你實際上得到了什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/465070.html
上一篇:在SpringAuthorizationServer(0.2.3 )中支持并發全堆疊MVC(session)認證以及無狀態JWT認證
