Angular @有角/有火的地方

Angular @有角/有火的地方,angular,firebase,google-cloud-firestore,angularfire,Angular,Firebase,Google Cloud Firestore,Angularfire,我得到了一个firestore的文档,其中有“where”。我的目标是知道这个文档是否已经存在(比如:这是一个集合中的伪文档),但有uid var request = this.ms.afs.collection('users', ref => ref.where('uuidsocial', '==', uid)).get().subscribe(users => { if(users.size > 0){ console.log("exists

我得到了一个firestore的文档,其中有“where”。我的目标是知道这个文档是否已经存在(比如:这是一个集合中的伪文档),但有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,而且我确信它现在不是正确的代码,尝试了很多东西。 非常感谢更新 正如一篇评论中所指出的,显然
用户
是一个很好的选择。您可以尝试
users.empty
,尽管我看不出
users.size
不起作用的任何原因。我的猜测是,无论出于何种原因,该集合始终至少有一个用户具有
uuidsocial==${无论您的测试uid是什么}
。我会尝试
console.log(users)
查看您得到了什么

我想你需要
用户。长度
。Javascript数组没有
size
属性

var request=this.ms.afs.collection('users',ref=>ref.where('uuidsocial','=','uid')).get().subscribe(users=>{
如果(users.length>0){
console.log(“存在”);
console.log(users.length);
}否则{
console.log(“不存在”);
}
});

您可以这样做:

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);
});
请参阅此处的文档:

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

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

你好,当我尝试你的代码时,我得到:
属性'length'在类型'QuerySnapshot'上不存在。ts(2339)
@nonoom啊,我(错误地)假设
用户
是一个数组。你在使用AngularFirestore吗?是的,但我正在使用'where'^@nonoom查看我的更新答案并让我知道