我在类似的fireStore中担任安全角色
allow read: if resource.data.uid == request.auth.uid;
我正在尝试像这个一样获取数据
export function GetPatients(limit) {
return async (dispatch) => {
await firebase
.firestore()
.collection("patients")
.doc(firebase.auth().currentUser.uid)
.collection("patient")
.orderBy("creation", "desc")
.where("uid", "==", firebase.auth().currentUser.uid && "importent" ,"==" ,true)
.limit(limit)
.onSnapshot((result) => {
let Patients = result.docs.map((doc) => {
const data = doc.data();
const id = doc.id;
return { id, ...data };
});
lastPatient = result.docs[result.docs.length - 1];
dispatch({ type: GET_PATIENTS, Patients });
});
};
}
我需要更改角色吗?或者查询数据的方式有问题吗?
我得到的错误是
快照侦听器错误:FirebaseError:缺少或权限不足。–
这不是向查询添加多个条件的方式:
.where("uid", "==", firebase.auth().currentUser.uid && "importent" ,"==" ,true)
相反,为每个条件调用where
一次。因此:
.where("uid", "==", firebase.auth().currentUser.uid)
.where("importent" ,"==" ,true)