使用默认规则写入我的实时数据库:
{
"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
删除我的数据库中的旧条目并重新运行我的应用程序后,当我尝试保存新用户时没有任何反应。我错过了什么?