簡體   English   中英

Flutter firebase 檢查 email 存在於 firestore 集合中

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

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