如何解决通过字符串格式的“ 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
是一个
我见过与我类似的问题,但没有一个适合我的用例。
编辑: 我尝试使用getReferencefromurl方法,该方法返回错误:java.lang.IllegalArgumentException:无法解析存储Uri。
数据库内部的URL存在100%。
解决方法
FirebaseStorage.getInstance(String)
用于为作为参数的存储桶构建FirebaseStorage对象实例。错误消息告诉您,gs URL不能包含路径组件(只有存储区名称)。它不是用于转换gs文件路径的。
相反,您可能只想:
- 使用
getInstance()
(不带参数)获取普通的FirebaseStorage实例。 - 调用storage.getReferenceFromUrl()并传递完整的gs URL,以获得指向该文件的StorageRefence
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。