要检索图库中的图像,大多数教程都会介绍
startActivityForResult()
代码块确实返回了一个URI,但是,当我使用该URI设置图像或上传到firebase存储时,它不起作用。
图像获取和上传流程:
- 单击个人资料图片
- 从文件存储或多媒体资料中选择
- 选择后,它将自动在视图中设置图像,并将其上传到与当前登录用户的授权ID相关联的firebase存储。
我在一个片段中有这样的话:
第一次
而这是上传到firebase的代码:
private val storageRef = Firebase.storage.reference
fun uploadImage(path: Uri?){
val file = Uri.fromFile(File(path?.path!!))
storageRef.child("images/${UUID.randomUUID()}").putFile(file)
}
我想我遗漏了一些东西。
谢谢你的帮助。
1条答案
按热度按时间mctunoxg1#
我找到解决办法了!
对于
registerActivity
,我使用了照片选择器支持库链接我还添加了文档中讨论的依赖项
implementation 'androidx.activity:activity-ktx:1.6.1'
。对于上传到firebase,我想我只是对File类和Uri的用法感到困惑。我本可以一开始就传递Uri,我可能是对新的关键字(File和Uri)感到困惑,然后跳转到副本粘贴代码。
这是我得到的代码:
我已经将
registerForActivityResult
代码移到onCreate()之外,并且只是Fragment类的一个子类。在onViewCreated()上:
上传至firebase:
我刚刚通过了URI
谢谢你的帮助