@ angular / fire存在的地方

时间:2019-04-23 17:38:28

标签: angular firebase google-cloud-firestore angularfire

我正在获取带'where'的firestore文档,我的目标是知道这个文档是否已经存在(例如:在一个集合中是这个伪对象)但是带有uid。

 var request = this.ms.afs.collection('users', ref => ref.where('uuidsocial', '==', uid)).get().subscribe(users => { 
      if(users.size > 0){
        console.log("exists");
        console.log(users.size);
      }else{
        console.log("doesn't exist");
      }
    });

无法正常工作,总是返回1,我确定它现在不是正确的代码,尝试了很多事情。 非常感谢

2 个答案:

答案 0 :(得分:1)

更新

如评论中所指出,显然usersQuerySnapshot。您可以尝试users.empty,尽管我看不出users.size无法正常工作的任何原因。我的猜测是,无论出于何种原因,该集合始终至少有一个uuidsocial === ${whatever your test uid is}用户。我会尝试console.log(users)来查看您返回的内容。

我认为您想要users.length。 Javascript数组没有size属性。

var request = this.ms.afs.collection('users', ref => ref.where('uuidsocial', '==', uid)).get().subscribe(users => { 
  if (users.length > 0){
    console.log("exists");
    console.log(users.length);
  } else {
    console.log("doesn't exist");
  }
});

答案 1 :(得分:0)

您可以这样做:

var docRef = this.ms.afs.collection("users").doc(uid);
docRef.get().then((doc) => {
    if (doc.exists) {
        console.log("Document data:", doc.data());
    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch(function(error) {
    console.log("Error getting document:", error);
});

在此处查看文档:

https://firebase.google.com/docs/firestore/query-data/get-data

也可以通过查询执行此操作:

this.ms.afs.collection('users', (ref) => ref.where('uuidsocial', '==',uid))
    .get()
    .subscribe(user => { if(user.size >= 0) ...do smthg })