0
在我的數據庫中引入了一些.validate規則後,我得到了一個奇怪的錯誤,每當我嘗試從Android設備發送數據時,我開始獲取權限被拒絕。數據無法通過Firebase的.validate規則
規則很簡單:
"rules": {
"reportsToAdd": {
".read": "auth != null",
".write": "auth != null",
".validate": "newData.hasChildren(['displayName', 'title', 'description', 'lat', 'lng', 'imageLinks', 'uid', 'isNotified'])"
}
}
只是檢查是否有對象的下列屬性。
與此同時,在Android設備我有以下的模型類
public class Report implements Serializable {
public String displayName;
public String title;
public String description;
public String uid;
public double lat;
public double lng;
public List<String> imageLinks;
public boolean isNotified = false;
public Report() { }
}
邏輯發送報告:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("reportsToAdd");
myRef.push().setValue(report, new DatabaseReference.CompletionListener() { ... });
當.validate規則被刪除,一切正常,所以它不是身份驗證問題,它只是驗證,我現在檢查了幾次錯誤,發送時所有屬性都不爲空。我不認爲它應該是Serializable接口引起的問題,因爲它只是一個接口。
完整的錯誤:com.google.firebase.database.DatabaseException: Firebase Database error: Permission denied
這就是我錯過的,對於Firebase來說相當新穎。 乾杯! –