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

Posted

技术标签:

【中文标题】无法使用 Flutter Mobile 上传到 Firebase 存储【英文标题】:Cannot upload to Firebase Storage using Flutter Mobile 【发布时间】:2021-08-29 13:45:41 【问题描述】:

我是 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 除外。我相信这是因为需要使用 recaptcha 密钥配置 App Check 才能在 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,但它仍然无法正常工作。有人可以帮忙吗?

【问题讨论】:

问题解决了吗? 没有。我的问题不在 firebaseappcheck 上,只是我的互联网连接使用了不同的代理。 【参考方案1】:

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

    Add Firebase to your javascript project 如果您还没有这样做的话。

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

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

执行这些步骤后,您可以从第 2 步传递站点密钥(公钥),例如“abcdefghijklmnopqrstuvwxy-1234567890abcd”,并按如下方式使用它:

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

【讨论】:

我忘了说,我的应用不是网络应用。如果在移动开发中,我将注册什么“网站”? 这是官方文档,应该可以解决你的疑惑,移动端开发:firebase.flutter.dev/docs/app-check/usage

以上是关于无法使用 Flutter Mobile 上传到 Firebase 存储的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Flutter 将文件上传到 FirebaseStorage

无法使用 Flutter 放大将文件上传到 s3

使用 google_mobile_ads 加载横幅时 Flutter App 崩溃

无法运行 Dart 2 with / Angular for web 以及 Flutter for mobile 项目 - 计划共享代码

无法使用 Flutter Web 的 image_picker 将文件上传到 Firebase 存储

Flutter web - 无法将图像上传到 Firebase 存储