firebase - 在flutter中使用2个where子句查询Firestore

标签 firebase flutter google-cloud-firestore

  • 我的 eventClick 表中有两个属性 eventIDuserID 所以我想要做的是如果 eventID code> 和 userID 通常存在,然后显示您已经点击,如果不存在,则输入该点击。我想过使用两个子句并将其合并,但这只会导致插入值。
  • 我正在尝试使用以下代码
final checkSnapshot = FirebaseFirestore.instance
  .collection('eventClick')
  .where('eventID', isEqualTo: eventID)
  .where('userID', isEqualTo: userID)
  .snapshots();
  • 我希望工作是这样的
  if (checkSnapshot.exists) {
      print('already exists');
    } else {
      FirebaseFirestore.instance.collection('eventClick').add({
        'eventID': eventID,
        'eventName': eventName,
        'eventImageUrl': eventImageUrl,
        'userID': userID
      });
    }

最佳答案

你可以尝试使用 .get() ?这应该返回 QuerySnapshot它具有“大小”属性。如果为0,则表示不存在这样的文档。

FirebaseFirestore.instance
  .collection('eventClick')
  .where('eventID', isEqualTo: eventID)
  .where('userID', isEqualTo: userID)
  .get()
  .then((checkSnapshot) {
    print(checkSnapshot.docs[0]);
    if (checkSnapshot.size > 0) {
      print("Already Exists");
    } else {
      //add the document
    }
  });

关于firebase - 在flutter中使用2个where子句查询Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68191641/

相关文章:

firebase - 写入 FireStore - 失败时如何显示错误(如果没有网络)

javascript - 获取错误 : `Every document read in a transaction must also be written` in Firebase

angularjs - 新 Firebase 中的 Firebase angularfire

swift - Firebase 按字母顺序获取数据

flutter - 如何从Flutter中的获取请求中获取一个数据

flutter - 如何将CSS规则转换为Flutter样式

android - Task.isSuccessful() 为 false,无法添加任何用户

angular - 如何在 ion-item 中使用 *ngFor 以便每个都有单独的功能

Flutter 主体可能正常完成,导致返回 'null',但返回类型是潜在的不可空类型?

android - 如何检查firestore中是否已存在某些数据