У меня есть HashMap
, в котором есть 2 параметра, которые я хочу добавить в Firestore Database
.
FirebaseFirestore mFirestore=FirebaseFirestore.getInstance();
Map<String,Object> userItemsMap=new HashMap<>();
userItemsMap.put("EmailAddress",user.getEmail());
userItemsMap.put("CostPrice",thaliBO.getCostPrice());
mFirestore.collection("Maharashtra/411057/"+user.getUid()).add(userItemsMap)
.addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
String str="hi";
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
String str="hi";
}
});
Я проверяю данные, используя правила Firestore
:
service cloud.firestore {
match /databases/{database}/documents {
match /{state}/{zip}/{uid}/{document=**} {
allow write: if request.resource.data.CostPrice>0 &&
request.resource.data.EmailAddress.size()<30
}
}
}
Меня беспокоит ситуация, когда кто-то, использующий реверс-инжиниринг, добавляет еще несколько параметров к userItemsMap
, например
userItemsMap.put("PhoneNUmber","123456789");
, которые будут храниться в firestore
, потребляющем ненужную память.
Есть ли в firestore
какое-либо правило проверки данных, которое может это предотвратить?