【发布时间】:2016-12-24 06:33:25
【问题描述】:
使用默认规则写入我的实时数据库:
{
"rules": {
".read": "true",
".write": "true"
}
}
我能够成功地将数据保存到数据库中:
我的 Android 应用中的代码如下所示:
DatabaseReference mDatabaseReference;
mDatabaseReference = DatabaseReference.getInstance().getReference();
...
mDatabaseReference.child("user").child(user.getUid()).setValue(user);
但为了允许登录用户(电子邮件和密码验证)仅访问他们自己的数据,我发现了这个Firebase - How to write/read data per user after authentication。答案使用了一个我似乎在任何地方都找不到的类Firebase。所以我把规则改成这样:
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid",
".read": "$uid === auth.uid"
}
}
}
}
对我的 java 代码稍作修改:
DatabaseReference mDatabaseReference, databaseReference;
...
mDatabaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference = mDatabaseReference.child("user");
...
databaseReference.setValue(user); //user is a POJO
删除数据库中的旧条目并重新运行我的应用程序后,当我尝试保存新用户时没有任何反应。我错过了什么?
【问题讨论】:
标签: android firebase firebase-realtime-database firebase-authentication