读/写我需要给只有通过验证的用户读/写访问,但它似乎是火力地堡没有识别出用户进行身份验证。Firebase错误:权限被拒绝。无法从火力地堡数据库
后,我与电子邮件和密码登录,我假设用户进行身份验证,并应允许读取数据库/写。但是,许可被拒绝。
下面是登录活动代码:我想使用火力的默认规则,只允许auth用户阅读从数据库/写
firebaseAuth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//checking if success
if(task.isSuccessful()){
//display some message here
// Toast.makeText(Register.this,"Successfully registered",Toast.LENGTH_LONG).show();
sRef.authWithPassword(email,password,new Firebase.AuthResultHandler() {
@Override
public void onAuthenticated(AuthData authData) {
Toast.makeText(Register.this, user.getDisplayName()+" is authenticated",Toast.LENGTH_LONG).show();
}
@Override
public void onAuthenticationError(FirebaseError firebaseError) {
}
});
Intent i = new Intent(Register.this,MainActivity.class);
startActivity(i);
}else{
//display some message here
Toast.makeText(Register.this, task.getException().getMessage(),Toast.LENGTH_LONG).show();
}
}
});
:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
但是,当我改变了下面的规则,我的代码能够获得对数据库的读/写访问权限。
{
"rules": {
".read": true,
".write":true
}
}
这在测试中很好,但是我不能用这种方法继续生产。请帮助,如何验证注册用户访问Firebase中的数据库。
无在共享代码的访问数据库,所以它不能提高这个错误呢。请分享[重现问题所需的最低限度完整代码](http://stackoverflow.com/help/mcve)。 –
您是否在登录前启用了firbase登录方法,如电子邮件/密码或匿名身份验证部分。 –
我没有分享访问Firebase数据库的代码,因为它正在工作,但只有当我将规则更改为公开时。当我使用默认规则时,权限被拒绝。 –