使用实时更新时如何检查Cloud Firestore文档是否存在


75

这有效:

db.collection('users').doc('id').get()
  .then((docSnapshot) => {
    if (docSnapshot.exists) {
      db.collection('users').doc('id')
        .onSnapshot((doc) => {
          // do stuff with the data
        });
    }
  });

...但是似乎很冗长。我试过了doc.exists,但是没有用。我只想检查该文档是否存在,然后再订阅它的实时更新。最初的获取似乎浪费了对数据库的调用。

有没有更好的办法?


您是否要完成插页/更新?
DauleDK

3
现在db.collection('users').doc('id').ref.get()
-galki

Answers:


133

最初的方法是正确的,但是将文档引用分配给变量的过程可能比较简单:

const usersRef = db.collection('users').doc('id')

usersRef.get()
  .then((docSnapshot) => {
    if (docSnapshot.exists) {
      usersRef.onSnapshot((doc) => {
        // do stuff with the data
      });
    } else {
      usersRef.set({...}) // create the document
    }
});

参考:获取文档


2
你救了我的一天。谢谢!
AbnerEscócio'19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.