Я использую Cloud Firestore и пытаюсь изменить свое правило безопасности. Это условие, которое я хочу
Только пользователи, чей номер телефона есть в любых документах в коллекции Учителя, могут читать только его / ее документы в коллекции Учителя
Вот код, который я написал
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /Teachers/{teachers}{
allow read: if((resource.data.mobno == request.resource.data.mobno) )
allow update:if((request.resource.data.mobno == resource.data.mobno))
}
}
}
Это запрос на стороне клиента
Teacherref = FirebaseFirestore.getInstance().collection("Teachers");
Teacherref.whereEqualTo("mobno",mobilecredential).get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
if(!queryDocumentSnapshots.getDocuments().isEmpty()){
for(QueryDocumentSnapshot data:queryDocumentSnapshots){
teacherdata=data.toObject(TeacherLoginModel.class);
if(TextUtils.isEmpty(teacherdata.getStatus()))signinuser(data);
else if(teacherdata.getStatus().equals("signout"))signinuser(data);
else {Toast.makeText(Signin.this, "You Are Already logged In Different Phone", Toast.LENGTH_SHORT).show();
predialog.dismiss();}
}
}
else{
predialog.dismiss();
Toast.makeText(Signin.this,"Please Check Your Credentials ", Toast.LENGTH_SHORT).show(); }
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Signin.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});