Я пытаюсь безопасно создать документ Firestore, не требуя аутентификации пользователя, и для этого определил следующее правило:
allow create: if request.resource.data.deviceid == resource.id;
Согласно тому, что я прочитал от Google, это должно позволить создать документ, если ожидающая запись включает поле с именем DeviceID, которое соответствует идентификатору документа, что, как я думаю, я делаю (я подтвердил, что androidID идентичен идентификатору документа):
data.put(«DeviceID», androidID); mDevIDDocRef.set(data) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, «DocumentSnapshot successfully written!»); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, «Error writing document», e); } });
Однако вышеперечисленное не работает с исключением разрешения. Что я делаю неправильно?
Источник: