Firebase错误:权限被拒绝。 无法从Firebase数据库读取/写入

我只需要为已通过身份验证的用户授予读/写访问权限,但似乎Firebase未认识到该用户已通过身份验证。

在我用电子邮件和密码登录用户之后,我假设用户已通过身份验证,应该允许从数据库读取/写入数据。 但是,许可被拒绝。

以下是登录活动的代码:

 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();
            }

        }
    });

我想在firebase中使用默认规则,它只允许auth用户从数据库中读取/写入:

{
 "rules": {
  ".read": "auth != null",
 ".write": "auth != null"
}
}

但是,当我更改下面的规则时,我的代码就能够读取/写入数据库。

{
"rules": {
".read": true,
".write":true
}
}

这在测试中很好,但我无法继续使用此方法进行生产。 请帮助,如何验证注册用户访问Firebase中的数据库。


您的代码是来自旧版2.xx SDK的API调用的混合,例如:

sRef.authWithPassword(email,password,new Firebase.AuthResultHandler()

和新的9.xx SDK:

firebaseAuth.signInWithEmailAndPassword()

这两个SDK不兼容。 你需要使用或其他。 升级指南介绍了如何从旧SDK迁移到新SDK。

您还需要使用与所用SDK对应的Firebase控制台:旧版控制台或新的Firebase控制台。

链接地址: http://www.djcxy.com/p/84219.html

上一篇: Firebase error: Permission denied. Unable to read/write from Firebase Database

下一篇: accessing email address in firebase rules