当我尝试删除数据库中的某些数据时,我遇到了一些问题。
实际上,我有一个节点,我的应用程序中使用了所有用户名。
就像这样:
"usernames": {
".indexOn": ["username"],
"$username": {
".read": "true",
".write": "(!data.exists() && auth != null) || (auth.token.name.toLowerCase() == data.val())"
}
我想要一些像这样的东西:
!data.exists() && auth != null
)auth.token.name.toLowerCase() == data.val()
)两个第一点工作正常,但第三点不起作用,我得到一个DatabaseError:权限被拒绝(我也尝试root.val()
而不是data.val()
)。
代码:
mFirebaseInstance.getmDatabase()
.child("usernames")
.child(oldUsername.toLowerCase())
.removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override public void onComplete(@NonNull Task<Void> task) {
System.out.println("pass here!");
}
});
我认为我的规则不正确,但我不知道如何改变它。用户只能在用户名时删除用户名。
你知道怎么做吗?