我正在开发可与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"
}
}
我在网络上阅读了一堆问题,但似乎没有人帮助我:/
有什么主意吗?
答案 0 :(得分:0)
以上规则将仅允许经过身份验证的用户从您的数据库读取数据。因此,用户是否经过匿名身份验证(可以稍后转换为普通用户)还是用户使用用户名和密码或其他任何提供程序(例如Googe,Facebook,Twitter等)进行身份验证都没关系,同样的规则适用。这是使用Firebase安全规则的第一条也是最重要的规则,必须对用户进行身份验证。