[英]How to get all documents in a collection from Firestore in React Native
[英]How to get all documents but one from firebase firestore in react native?
由于我不能使用!=
,我正在使用<
和>
但我不知道如何将它们合并在一起并等待结果。 它一次只适用于一个。
async getAllUsersExceptCurrent() {
const lower = firebase
.firestore()
.collection('users')
.where(
firebase.firestore.FieldPath.documentId(),
'<',
firebase.auth().currentUser.uid
)
.get();
const upper = firebase
.firestore()
.collection('users')
.where(
firebase.firestore.FieldPath.documentId(),
'>',
firebase.auth().currentUser.uid
)
.get();
const usersList = await lower.then(snapshot => {
return snapshot.docs.map(user => {
console.log(user.data());
return { id: user.id, username: user.data().username };
});
});
return usersList;
}
以下应该可以解决问题:
async getAllUsersExceptCurrent() {
const lower = firebase
.firestore()
.collection('users')
.where(
firebase.firestore.FieldPath.documentId(),
'<',
firebase.auth().currentUser.uid
)
.get();
const upper = firebase
.firestore()
.collection('users')
.where(
firebase.firestore.FieldPath.documentId(),
'>',
firebase.auth().currentUser.uid
)
.get();
const [l, u] = await Promise.all([lower, upper]);
const lArray = l.docs.map(user => {
return { id: user.id, username: user.data().username };
});
const uArray = u.docs.map(user => {
return { id: user.id, username: user.data().username };
});
return lArray.concat(uArray);
}
以下也将起作用:
//...
const results = await Promise.all([lower, upper, lower]);
const usersList = [];
results.forEach(r => {
r.docs.map(user => {
usersList.push({ id: user.id, username: user.data().username });
});
});
return usersList;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.