Firebase数据库访问和&安全规则

时间:2018-07-07 17:33:31

标签: android firebase firebase-realtime-database firebase-security-rules

我正在开发可与Firebase数据库配合使用的Android应用。设置应用程序的方式不需要任何身份验证,并且只允许用户从数据库读取。 我想找到一种方法,仅将使用我的应用程序的用户限制为对数据库的访问。 我知道存储“默认”凭据并不是出于安全目的的最佳选择,我也尝试了匿名身份验证,但是我不确定它是否可以正常工作(我试图删除身份验证步骤,并且我始终可以访问数据库通过我的应用程序)。

以下是验证用户身份的代码:

private void getAuthentication() {

    mAuth = FirebaseAuth.getInstance();
    mAuth.signInAnonymously().addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            if (task.isSuccessful()) {
                user = mAuth.getCurrentUser();
                Toast.makeText(MainActivity.this, "Authenticated!", Toast.LENGTH_SHORT).show();
            } else
                Toast.makeText(MainActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show();
        }
    });
}

Firebase身份验证规则

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

我在网络上阅读了一堆问题,但似乎没有人帮助我:/

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

以上规则将仅允许经过身份验证的用户从您的数据库读取数据。因此,用户是否经过匿名身份验证(可以稍后转换为普通用户)还是用户使用用户名和密码或其他任何提供程序(例如Googe,Facebook,Twitter等)进行身份验证都没关系,同样的规则适用。这是使用Firebase安全规则的第一条也是最重要的规则,必须对用户进行身份验证。