我有一个通过 Play 部署的应用程序,最初没有配置 Firebase App Check。我现在将 App Check 集成到应用程序中,而不启用“强制”,并在发布后观察到经过验证的请求会增加,但未达到 100%。
当启用“Enforce”并且某些安装尚未升级时,各种 RTDB 调用的失败模式是什么,例如:
// (1)
FirebaseDatabase db = FirebaseDatabase.getInstance();
对于未经验证的请求,下面的调用是否成功?或者抛出异常?或者返回null?
// (2)
DatabaseReference rootDb = db.getReference();
对于未经验证的请求,以下调用是否完成(以及
task.isSuccessful
的情况)?或者抛出异常?还是根本不回来?
// (3)
rootDb.child("test").child("testRead").get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (!task.isSuccessful()) {
Log.e(TAG,"Error reading from fb");
} else {
Log.d(TAG,"Good database read: "+task.getResult().getValue());
}
}
});
调用 3 将失败(对于没有有效应用程序检查令牌的客户端),并出现权限被拒绝错误,与您的安全规则拒绝该操作时相同。