我想将上传的文件路径保存到数据库。为此,Firebase为我提供了上传文件的URI:taskSnapshot.getDownLoadUrl()
。现在我需要将其保存到数据库以供以后使用。保存它的正确方法是什么? :
taskSnapshot.getDownLoadUrl().toString
或taskSnapshot.getDownLoadUrl().getPath()
?
对于测试,我尝试使用上面的这些字符串作为load()方法参数将上传的图像文件加载(Glide)到imageview中。 toString有效,但getPath没有。
答案 0 :(得分:1)
当你获得taskSnapshot的downloadUrl时,它返回question,如果你使用toString(),你会得到一个包含图像下载URL的字符串,但如果你要求路径,它将会什么都不返回,因为taskSnapShot.getDownloadUrl()返回的uri不是分层的。如果您希望firebase存储上的文件路径通过存储引用而不是URL访问它,则可以使用taskSnapshot.getStorage()。
答案 1 :(得分:0)
来自Firebase文档:
getDownloadUrl
String
A URL that can be used to download the object.
This is a public unguessable URL that can be shared with other clients.
This value is populated once an upload is complete.
你应该获取DownloadUrl并将其保存到Uri中,然后你可以将Uri.tostring与Glide一起使用
Uri downloadUrl = taskSnapshot.getDownloadUrl();
另一种选择,即使用FirebaseUI Storage, 你应该保存storageReference然后你可以用它
Glide.with(this /* context */)
.using(new FirebaseImageLoader())
.load(storageReference)
.into(imageView);