firebase React Firestore查询在首次运行时未返回找到的文档

jw5wzhpr  于 2023-02-13  发布在  React
关注(0)|答案(1)|浏览(107)

我正在开发一个网络应用程序,用户可以在这里预约医生,我想防止用户在同一时间和日期预约同一个医生,而另一个用户已经请求了。我正在使用一个firestore数据库将预约存储为文档。这是我的函数,它处理检查并推送到我的firebase数据库:

const addAppointment = async (date: Date | null, speciality: string | undefined) => {
      const appointmentsRef = collection(db, "appointments");
      const q = query(appointmentsRef, where("speciality", "==", speciality), where("date", "==", date))
      const docs = await getDocs(q);
      docs.forEach((doc: any) => {
        console.log(doc.data())
      })
      console.log(docs.docs.length)
      if (docs.docs.length === 0) {
        try{
          await addDoc(collection(db, "appointments"), {
            email: auth.currentUser?.email,
            date,
            speciality
          });}
          catch (err) {
            console.error(err);
          }
        return false
      }
        return true
    };

刷新页面时,如果我尝试进行已请求的约会,则文档长度为0,我可以进行相同的约会。但是,如果我再次尝试(不刷新),则文档长度为1,并且不会将任何内容推送到数据库。

eeq64g8w

eeq64g8w1#

我现在将日期字段解析为字符串,实际上是在比较字符串而不是日期。

相关问题