我正在获取带'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,我确定它现在不是正确的代码,尝试了很多事情。 非常感谢
答案 0 :(得分:1)
如评论中所指出,显然users
是QuerySnapshot
。您可以尝试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 })