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

Flo*_*ian 12 firebase flutter firebase-app-check

我想在我的 Android Flutter 应用程序中包含 Firebase 应用程序检查 Firebase 存储。因此,我遵循官方文档: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?) {
        FirebaseApp.initializeApp(/*context=*/ this);
        val firebaseAppCheck = FirebaseAppCheck.getInstance()
        firebaseAppCheck.installAppCheckProviderFactory(
                DebugAppCheckProviderFactory.getInstance())
        super.onCreate(savedInstanceState)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 main():

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate();
  runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)

我还将其添加到我的 app/build.gradle 中

dependencies {
  implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta01'
}
Run Code Online (Sandbox Code Playgroud)

当我向 firebase 存储发出请求时,我希望控制台中出现类似以下内容:

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

相反,我收到一个错误:

获取应用程序检查令牌时出错;使用占位符标记代替。错误:com.google.firebase.FirebaseException:从 API 返回错误。代码:403 主体:来自此 Android 客户端应用程序的请求被阻止。

我在这里错过了什么吗?我正在使用带有 flutter debug 版本的真实 Android 设备。

Nut*_*uts 2

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

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

显然,使用blockedfirebase 意味着您的 API 密钥配置不正确。

如果您收到此错误:

 Error: com.google.firebase.FirebaseException: Error returned from API. code: 403 body: App attestation failed. 
Run Code Online (Sandbox Code Playgroud)

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

  • **[已解决]** 我确实从以下命令“cd android && ./gradlewsigningReport”生成了 SHA-256 密钥,然后查找带有变体“Debug”的“appsigning”,并将 SHA-256 字符串复制到 firebase 控制台中“项目设置>应用程序检查`并单击安全网并将字符串粘贴到其中 (3认同)
  • 谢谢你的建议。我刚刚删除并添加了我的调试和发布 SHA-1 密钥到 firebase 并再次下载了 google-services.json,但是当我想调用 https 函数时,会打印相同的问题:Error getting App Check token; 使用占位符标记代替。错误:com.google.firebase.FirebaseException:从 API 返回错误。代码:403 正文:应用程序认证失败。 (2认同)