启用Firebase App Check强制后,未升级应用的RTDB调用失败模式咨询
Firebase App Check强制启用后未升级实例的RTDB调用失败模式
针对你启用Firebase App Check「强制」功能后,未升级的旧版应用实例的RTDB调用行为,分点说明如下:
1. FirebaseDatabase.getInstance()调用结果
这个调用会成功,返回正常的FirebaseDatabase实例。
原因:这只是客户端本地的SDK初始化操作,不会发起任何与Firebase后端的网络请求,因此不会触发App Check验证,也不会抛出异常或返回null。
2. db.getReference()调用结果
这个调用会成功,返回有效的DatabaseReference对象。
原因:创建数据库引用同样是本地操作,不涉及网络交互,不会触发App Check验证流程,因此不会出现异常或返回null。
3. rootDb.child("test").child("testRead").get()调用结果
这个实际的读请求会验证失败,对应的task.isSuccessful()会返回false,不会抛出异常,也不会返回有效数据。
- 回调中的
task.getException()会包含具体的错误信息(通常是权限验证失败或App Check令牌无效/缺失的相关错误); task.getResult()不会返回有效的DataSnapshot,调用getValue()会得到null;- 你的代码中已经通过
!task.isSuccessful()分支处理了错误情况,因此旧版实例不会因为这个调用崩溃。
内容的提问来源于stack exchange,提问作者user17856705
相关产品推荐
相关产品推荐

