firebase - 从字符串格式的“gs”url创建firebase存储引用
问题描述
通过将引用本身转换为字符串,我在 Firebase 数据库中存储了一个StorageReference
firebase,当尝试使用“.getInstance”方法从其字符串版本重新创建引用时,出现以下错误。
错误:java.lang.IllegalArgumentException: The storage Uri cannot contain a path element.
存储引用本身(已转换为字符串):val personalstorageref = FirebaseStorage.getInstance().getReference().child("${auth.currentUser!!.email}/Posts/${filename}")
数据库内部的存储引用字符串版本:gs://stnok-25330.appspot.com/hell%20gmail.com/Posts/d1dad470-25ad-3ffb-q422-22cca5e5596o
我尝试从 gs 路径创建存储引用的方式:var refurl = FirebaseStorage.getInstance(listset.refslist[i]!!).reference
关于我尝试从 gs 路径创建存储引用的方式需要注意的几件事:该对象listset
包含一个可变的 gs 路径列表,它refslist
是i
一个 Int。
我见过与我类似的问题,但没有一个适合我的用例。
编辑: 我尝试使用 getReferencefromurl 方法,它返回错误:java.lang.IllegalArgumentException:无法解析存储 Uri。
数据库内部的 url 存在 100%。
解决方案
FirebaseStorage.getInstance(String)
用于为作为参数给出的存储桶构造 FirebaseStorage 对象实例。错误消息告诉您 gs URL 不能有路径组件(只有存储桶名称)。它不是用于转换 gs 文件路径。
相反,您可能只想:
getInstance()
使用不带参数的普通 FirebaseStorage 实例。- 调用storage.getReferenceFromUrl()并传递完整的 gs URL 以获取指向该文件的 StorageReference
推荐阅读
- javascript - 在 React 中使用 fetch 从 API 获取数据
- android - Volley 没有将任何内容加载到 Android Studio 中的 ArrayList 中
- python - python2.7的super()跳过直接父母?
- python - Python for循环选择列表中的元素
- javascript - 无法在节点 js 中调用静态方法
- c# - 如何在 C# 中调用 google.apis.dialogflow.v2
- nginx - 如何在 nginx 中启用 CORS
- php - 在 MacOS 上通过 Apache 从 PHP 运行 python3
- android - 如何在活动中处理 RecyclerView 之外的开关小部件(或按钮)
- javascript - 如何在对象中的对象数组中映射这组对象