这是在 firebase 上定义规则的方式:
{
"rules": {
"users": {
".read": true,
"$user_id": {
".write": "auth.uid === $user_id",
".read" : true
}}}}
我已经成功地使用 setValue() 在我的注册活动中写入了新的用户信息,如下所示,并且每次我都没有遇到身份验证问题时,还使用 push().setValue() 添加了新注释。新用户直接写到http://数据库/用户/ http://DB/users/同时评论也加得很深。
这是一个代码片段,我的代码命中日志:无法保存数据。每次。
AuthData authData = newRef.getAuth();
if (authData != null) {
Log.v(LOG_TAG, "Auth as " + authData.getUid());
Map<String, Object> newEntry = new HashMap<String, Object>();
newEntry.put("Name", name);
newEntry.put("Description", desc);
newEntry.put("DueDate", date);
newEntry.put("Status", 0);
newRef.setValue(newEntry, new Firebase.CompletionListener() {
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
if (firebaseError != null) {
Log.v(LOG_TAG, "Data could not be saved. " + firebaseError.getMessage()); //Hits here every time.
} else {
Log.v(LOG_TAG, "Data saved successfully. Finishing activity...");
finish();
}
}
});
;
}
else{
Log.v(LOG_TAG, "No authdata");
}
希望我提供了足够的信息,我猜问题出在安全/规则中,但任何方向/指导将不胜感激。谢谢。