Я установил простую базу данных Firestore для хранения данных и работы над правилами / разрешениями.Я могу получить доступ к данным в одной коллекции под названием «рабочее место», но не могу прочитать данные в моей новой коллекции под названием «работник»
Я попытался изменить правило на:
allow read: if true;
и я могу читать данные
мой запрос в приложении:
db.collection("employee")
.whereEqualTo("workplaceId", w.getId())
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot doc : queryDocumentSnapshots) {
Employee e = doc.toObject(Employee.class);
e.setId(doc.getId());
Log.d(TAG, "staff: " + e.getFirstName());
}
}
});
мои правила в пожарном депо:
service cloud.firestore {
match /databases/{database}/documents {
match /workplace/{workplaceID} {
allow read: if resource.data.ownerId == request.auth.uid;
allow write: if request.auth.uid != null;
}
match /employee/{employeeID} {
allow read: if resource.data.workplaceId == request.resource.data.workplaceId;
allow write: if request.auth.uid != null;
}
}
}
Я хочу иметь возможностьчтобы получить все документы в коллекции «employee», где их «workplaceId» равен данным, которые я передаю.
См. ниже ссылку на изображение моей структуры БД:
https://imgur.com/GArRGkg