我对 Firebase 很陌生,但我的安全规则有问题。我有一个注册或登录新用户的 android 客户端。在该用户第一次登录时,我将他们的数据保存到 firebase,如下所示:
public void onAuthenticated(AuthData authData) {
//Save user data to firebase
Map<String, Object> map = new HashMap<String, Object>();
map.put("provider", authData.getProvider());
ref.child("users").child(authData.getUid()).updateChildren(map);
}
(验证用户时在 onAuthenticated() 中调用)
但是,似乎我的安全规则不允许用户写入数据库,除非他们的数据已经存储。我的规则如下:
{
"rules": {
"users":{
"$userid": {
".read": "auth.id == $userid && auth !== null",
".write": "auth.id == $userid && auth !== null"
}
}
}
}
此外,如果重要的话,这里有一个数据实际存储时的样子的示例:

一旦客户端通过服务器身份验证,我应该如何修改我的规则以允许客户端写入用户数据?
编辑:经过一些测试,这些规则似乎不允许用户向他们的用户节点写入任何内容,即使它已经存在。