是否可以浏览Cloud Firestore中的文档以查看属性的值是否等于比较的值?

时间:2019-06-07 21:20:05

标签: firebase google-cloud-firestore

我有使用普通JavaScript编写的网站来保留日常待办事项,而该应用程序最近崩溃是因为意外创建了同一日期的不同任务。我的问题是...

  • 如何编写if语句来检查集合中的文档是否具有等于表单输入字段中的属性的属性(在我的情况下为日期)。我猜应该在单击提交后检查?如果存在,则应拒绝创建;否则,可以继续。

我正在使用Cloud Firestore ...非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

首先,进行查询以获取具有相同日期的文档:

  var query = db.collection("yourCollectionName").where("date", "==", dateInInputfield);

  query.get().then(function(querySnapshot) {
       if (querySnapshot.empty) {
         //empty
       } else {
        // not empty
       }
   });

如果为空{您可以继续},否则为空{同一日期已经存在其他任务}

如果您要制作这样的应用程序,则更干净的方法是将文件的ID命名为日期,例如。如果在1234567的时间戳创建任务,请创建一个名为1234567的文档,并在其中存储所有必要的信息。

通过这种方法,如果您创建一个新任务,只需在输入字段中按名称获取文档,

   var docRef = db.collection("yourCollectionName").doc("date");

docRef.get().then(function(doc) {
  if (doc.exists) {
             //this means some other document already exists
  } else {
             //safe to create a new document by this date.
  }
}).catch(function(error) {
console.log("Error:", error);
});