cari

Rumah  >  Soal Jawab  >  teks badan

Tindak balas pertanyaan Firestore tidak menemui dokumen pada jalan pertama

Saya sedang membina apl web di mana pengguna boleh membuat temu janji dengan doktor dan saya mahu menghalang pengguna daripada membuat temu janji dengan doktor yang sama pada masa dan tarikh yang sama yang telah diminta oleh pengguna lain. Saya menggunakan pangkalan data firestore untuk menyimpan maklumat janji temu sebagai dokumen. Berikut ialah fungsi saya yang mengendalikan semakan dan menolaknya ke pangkalan data firebase saya:

    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
    };

Pada penyegaran halaman, jika saya cuba menempah janji temu yang telah diminta, panjang dokumen ialah 0 dan saya boleh membuat janji temu yang sama. Walau bagaimanapun, jika saya mencuba lagi (tanpa menyegarkan semula), panjang dokumen ialah 1 dan ia tidak ditolak ke pangkalan data.

P粉463291248P粉463291248468 hari yang lalu702

membalas semua(1)saya akan balas

  • P粉237029457

    P粉2370294572023-09-13 09:18:09

    Saya kini menghuraikan medan tarikh sebagai rentetan dan sebenarnya membandingkan rentetan dan bukannya tarikh.

    balas
    0
  • Batalbalas