无法使用 Flutter Mobile 上传到 Firebase 存储

问题描述

我是 Flutter 的新手,我一直在尝试将图像从 Flutter 应用上传到 Firebase 存储。它总是抛出相同的异常:

W/ExponenentialBackoff( 1185): network unavailable,sleeping.
W/StorageUtil( 1185): Error getting App Check token; using placeholder token instead. Error: com.google.firebase.FirebaseException: 16:

我已经将 Firebase 控制台连接到我的 Flutter 应用程序。我的 Firestore 正在运行,但 Cloud Storage 除外。我相信这是因为 App Check 需要使用 recaptcha 密钥进行配置才能在 Firebase.initializeApp() 下方的“main.dart”中运行,正如 FlutterFire 明确指示的那样: https://firebase.flutter.dev/docs/app-check/usage#activating-the-default-provider

  await FirebaseAppCheck.instance.activate(webRecaptchaSiteKey: 'recaptcha-v3-site-key');
  

问题是,我不知道在哪里可以从我的 Firebase 控制台找到那个 recaptcha 密钥,也不知道如何设置它。我已经尝试在我的 Firebase 项目中插入 WEB API KEY,但它仍然不起作用。有人可以帮忙吗?

解决方法

以下是根据 documentation 获取 webRecaptchaSiteKey 的步骤:

  1. Add Firebase to your JavaScript project 如果您还没有这样做。

  2. Register your site for reCAPTCHA v3 并获取您的 reCAPTCHA v3 站点密钥和秘密密钥。

  3. 在 Firebase 控制台的 Project Settings > App Check 部分通过 reCAPTCHA 提供程序注册您的应用以使用 App Check。你 需要提供您在上一步中获得的密钥。

按照这些步骤操作后,您可以传递站点密钥(公钥),例如“abcdefghijklmnopqrstuvwxy-1234567890abcd”,来自第 2 步并使用它,如下所示:

  await FirebaseAppCheck.instance.activate(webRecaptchaSiteKey: 'abcdefghijklmnopqrstuvwxy-1234567890abcd');

相关问答

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