[英]Flutter firebase check email exist inside firestore collection
我只需要檢查用戶 email 是否存在於用戶集合中。 現在我正在這樣做
var check = await FirebaseFirestore.instance.collection('users')
.where('email', isEqualTo: userData['email']).snapshots();
但是當我打印時檢查它的顯示
Instance of '_MapStream<QuerySnapshotPlatform, QuerySnapshot<Map<String, dynamic>>>'
如何檢查該集合中是否存在 email? 謝謝
您的check
變量是QuerySnapshot
object ,而您似乎希望它是 boolean 以指示查詢是否有任何結果。
得到那個:
var query = FirebaseFirestore.instance.collection('users')
.where('email', isEqualTo: userData['email']).limit(1);
var snapshot = await query.snapshots();
var check = query.size > 0;
請注意,我還向查詢添加了一個limit(1)
,因為您永遠不需要閱讀多個文檔來確定是否存在任何匹配項。
您可以嘗試或參考此方法讓我知道這是否解決了您的問題
static Future<bool> emailCheck(String email) async {
bool result = false;
QuerySnapshot snapshot = await
FirebaseFirestore.instance.collection('Users').get();
snapshot.docs.forEach((f) {
if (f['email'] ==email) {
result =true;
}
});
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.