{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
虽然我不明白从哪里读取auth.uid
?
我可以在下面执行此操作时存储信息,以便我可以使用auth.id
确认问题。我不确定是否需要将其作为参数或其他内容传递?我担心这就是我迷失的地方。
{
"rules": {
"users": {
"$uid": {
".read": true,
".write": true
}
}
}
}
这是我用来测试它的当前java代码:
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
User u = new User("Jack", "jack@email.co.uk", "12345678"); // Very simple class holding this user information
myRef.child("users").child(mFirebaseUser.getUid()).setValue(u);
我一直在查看有关火灾实时数据库的信息,但每次进行身份验证时,他们只会说"现在我们将关闭身份验证但确保您在生产中使用它!&# 34。
答案 0 :(得分:0)
嗯,你不需要作为参数传递,firebase会为你做。让我试着解释一下,在您的控制台中创建用户并登录您的应用程序后,firebase将为每个用户提供不同的uid
(类似于此ca07912b-7e65-41ad-8342-e87cf6f6ceb2
)。
因此,在您登录后,它将存储在您的智能手机中,您在数据库firebase中执行的每个请求都将分析您的安全规则,因此当您说只有 X 的所有者时可以访问/users/**X**/..
然后,如果您没有登录,则您无权阅读此路径。
答案 1 :(得分:0)
我是一个血腥的白痴,
我在我的代码上方调用FirebaseAuth.getInstance().signOut();
几行,我最初用于调试目的。