上传图像到firebase存储我附加 addOnSuccessListener
在storagereference的示例上。重写时 onSuccess
我正在呼叫的方法 getDownloadUrl()
以…为例 taskSnapshot
但这给了我一个错误
无法解析方法getdownloadurl()
这个应用程序我已经创建了2个月前,早些时候这个应用程序是正常工作和 getDownloadUrl()
工作也很好。另外,在 taskSnapshot
示例当我按ctrl+space时,在我找不到的建议中 getDownloadUrl()
方法。为什么会这样?
编码到 onActivityResult()
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RC_SIGN_IN) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Signed in!!!1", Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Failed to sign in", Toast.LENGTH_SHORT).show();
finish();
}
}
else if(requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK){
Uri selectedPhoto = data.getData();
StorageReference localRefrence = storageReference.child(selectedPhoto.getLastPathSegment());
// Uploading the file on the storage
localRefrence.putFile(selectedPhoto).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Uri downloadUrl = taskSnapshot.getDownloadUrl();
FriendlyMessage message = new FriendlyMessage(mUsername, null, downloadUrl.toString());
databaseReference.push().setValue(message);
}
});
}
}
7条答案
按热度按时间plupiseo1#
firebase api已更改。
2018年5月23日
云存储版本16.0.1
删除了不推荐使用的storagemetadata.getdownloadurl()和uploadtask.tasksnapshot.getdownloadurl()方法。要获取当前下载url,请使用storagereference.getdownloadur()。
UploadTask.TaskSnapshot
有一个名为getMetadata()
返回一个StorageMetadata
对象。这个
StorageMetadata
对象包含名为getReference()
返回一个StorageReference
对象。那个
StorageReference
对象包含getDownloadUrl()
方法,该方法现在返回任务对象而不是uri对象。然后必须监听该任务以获取uri,uri可以异步完成,也可以以阻塞方式完成;请参见任务api。
vlurs2pr2#
尝试
bsxbgnwa3#
getdownloadurl方法已被否决。而是使用以下tasksnapshot.getmetadata().getreference().getdownloadurl().tostring()
svgewumm4#
这个
.getDownloadURL
不再可用,已弃用。从文档中Task<Uri>
以及getdownloadUrl();
异步检索具有可撤销令牌的长寿命下载url。见文件zhte4eai5#
k4emjkb16#
你应该试试这个。理解它并尝试在你的系统中实现
2w3kk1z57#
你不会得到图片下载网址现在使用
profileimageurl=tasksnapshot.getdownloadurl().tostring();此方法已弃用。
相反,您可以使用以下方法