Flutter if 语句不起作用
Flutter if statement not functioning
这应该是一个简单的问题,但我已经被困了几个小时。
情况:如果用户未被授权,我正在尝试执行 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();
}
});
}
您得到的值可能是 '0'
而不是 0
,即它是一个 字符串 !
它不会等于数字 0
那么你必须写成 if (nested == '0')
.
您可以尝试 print(nested.runtimeType)
看看您实际得到了什么。
这应该是一个简单的问题,但我已经被困了几个小时。
情况:如果用户未被授权,我正在尝试执行 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();
}
});
}
您得到的值可能是 '0'
而不是 0
,即它是一个 字符串 !
它不会等于数字 0
那么你必须写成 if (nested == '0')
.
您可以尝试 print(nested.runtimeType)
看看您实际得到了什么。