Firebase Cloud Firestore ข้อมูลการอ่าน-เขียน

ฉันกำลังพยายามสมัครและบันทึกข้อมูลผู้ใช้ลงใน firestore การดำเนินการบันทึกเป็นเรื่องปกติ แต่ฉันต้องการค้นหาข้อมูลนั้น แต่ไม่มีอะไรเกิดขึ้น นี่คือรหัสของฉัน

ลงชื่อ

    firestore
  .collection("users")
  .doc(user.userId)
  .collection("profile")
  .add({ ...user })
  .then(() => {
    auth.onAuthStateChanged((u) => {
      if (u) {
        u.updateProfile({
          displayName: user.displayName,
        });
      }
    });
  });

ดึงข้อมูลผู้ใช้ทั้งหมด

  firestore
.collection("users")
.get()
.then(function (querySnapshot) {
  querySnapshot.forEach(function (doc) {
    //doc.data() is never undefined for query doc snapshots
    console.log(doc.id, " => ", doc.data());
  });
});

person Huseyin Akcicek    schedule 25.08.2020    source แหล่งที่มา


คำตอบ (1)


คุณควรจะบรรลุผลสำเร็จได้โดยใช้โค้ดที่คล้ายกันกับโค้ดด้านล่างนี้ มันคล้ายกับของคุณมาก แต่มีความแตกต่างบางประการ โดยที่เราแยกการอ้างอิงไปยังฐานข้อมูล และปล่อยให้ querySnapshot วนซ้ำด้วยตัวเอง เพื่อให้สามารถส่งคืนข้อมูลได้ ฉันมักจะใช้รูปแบบนี้เพื่อส่งคืนข้อมูลจากคอลเลกชัน

var db = admin.firestore()
var usersReference = db.collection("users");

usersReference.get().then((querySnapshot) => {
    querySnapshot.forEach((userDoc) => {
        console.log(userDoc.id)
        var userDocData = userDoc.data()
        console.dir(userDocData)
    })
})

สิ่งนี้น่าจะได้ผล ดังนั้นในกรณีที่ไม่มีการส่งคืนสิ่งใดๆ เลย อาจเป็นไปได้ว่าการดำเนินการบันทึกของคุณทำงานไม่ถูกต้อง สิ่งนี้จะส่งคืนทั้ง ID ของผู้ใช้และข้อมูลทั้งหมดจากนั้น

person gso_gabriel    schedule 26.08.2020
comment
ขอบคุณสำหรับการสนับสนุนของคุณ. คุณพูดถูก การดำเนินการบันทึกของฉันทำงานไม่ถูกต้อง - person Huseyin Akcicek; 06.10.2020