无法使用 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
使用 google_mobile_ads 加载横幅时 Flutter App 崩溃
无法运行 Dart 2 with / Angular for web 以及 Flutter for mobile 项目 - 计划共享代码