无法使用 App Check 为 Firebase 存储生成调试令牌

问题描述

我想在我的 Android Flutter 应用程序中包含 Firebase App Check for Firebase Storage。 因此,我正在关注官方文档:https://firebase.flutter.dev/docs/app-check/usage.

这是我的 Kotlin MainActivity:

import android.os.Bundle
import com.google.firebase.FirebaseApp
import com.google.firebase.appcheck.FirebaseAppCheck
import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory
import io.Flutter.embedding.android.FlutterActivity


class MainActivity : FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        FirebaseApp.initializeApp(/*context=*/ this);
        val firebaseAppCheck = FirebaseAppCheck.getInstance()
        firebaseAppCheck.installAppCheckProviderFactory(
                DebugAppCheckProviderFactory.getInstance())
    }
}

这是我的 main():

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate();
  runApp(MyApp());
}

我也将这个添加到我的 app/build.gradle

dependencies {
  implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta01'
}

当我向 firebase 存储提出请求时,我希望在我的控制台中出现这样的内容

D DebugAppCheckProvider:将此调试密码输入允许列表 在您的项目的 Firebase 控制台中: 123a4567-b89c-12d3-e456-789012345678

相反,我收到了一个错误

获取应用检查令牌时出错;改用占位符令牌。错误: com.google.firebase.FirebaseException:从 API 返回错误代码: 403 正文:来自此 Android 客户端应用程序的请求是 被屏蔽了。

在这里错过了什么吗?我使用的是带有 Flutter 调试版本的真实 Android 设备。

解决方法

尝试再次下载您的 google-services.json。

如果这没有帮助,可能需要在这样做之后添加/重新添加您的 debug key's SHA-1 certificate,获取新的 google-services.json

显然被 firebase blocked 表示您的 API 密钥配置不正确。

如果您收到此错误:

 Error: com.google.firebase.FirebaseException: Error returned from API. code: 403 body: App attestation failed. 

Project Settings > App Check 中检查您的 SafetyNet 提供商。 您需要提供 SHA-256 fingerprint 的应用签名证书。 (也建议增加令牌的存活时间)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...