针对未经验证的请求的 Firebase 应用程序检查 (RTDB) 失败模式

问题描述 投票:0回答:1

我有一个通过 Play 部署的应用程序,最初没有配置 Firebase App Check。我现在将 App Check 集成到应用程序中,而不启用“强制”,并在发布后观察到经过验证的请求会增加,但未达到 100%。

当启用“Enforce”并且某些安装尚未升级时,各种 RTDB 调用的失败模式是什么,例如:

  • 对于未验证的请求,下面的调用是否成功?或者抛出异常?或者返回null?

    // (1) FirebaseDatabase db = FirebaseDatabase.getInstance();
    
    
  • 如果 (1) 成功,那么:

    对于未经验证的请求,下面的调用是否成功?或者抛出异常?或者返回null?

    // (2) DatabaseReference rootDb = db.getReference();
    
    
  • 最后,如果(1)和(2)都成功,那么:

    对于未经验证的请求,以下调用是否完成(以及

    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()); } } });
    
    
我不想仅仅为了找出结果而启用“强制”,因为这可能会导致未经验证的安装/请求崩溃。

android firebase-realtime-database firebase-app-check
1个回答
0
投票
调用 1 和 2 肯定会成功,因为它们是纯客户端操作,并且 App Check 仅在服务器上强制执行。

调用 3 将失败(对于没有有效应用程序检查令牌的客户端),并出现权限被拒绝错误,与您的安全规则拒绝该操作时相同。

© www.soinside.com 2019 - 2024. All rights reserved.