我正在建立一个使用firebase的应用程序聊天功能。除了从存储中获取图像之外,一切都可以正常工作。图像上传成功,但数据库中存储的所有图像的downloadURl始终为com.google.android.gms.tasks.zzu@7e17eff
。如果我在从firebase存储中复制后手动更改数据库中的下载链接,则会获取图像。
处理firbase上载的方法
private void putImageInStorage(final StorageReference storageReference, Uri uri, final String key) {
storageReference.putFile(uri).addOnCompleteListener(
new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (task.isSuccessful()) {
message friendlyMessage =
new message(null, mUsername, mPhotoUrl,
task.getResult().getStorage().getDownloadUrl().toString() , mFirebaseUser.getUid());
mFirebaseDatabaseReference.child(MESSAGES_CHILD).child(key)
.setValue(friendlyMessage);
} else {
Log.w(TAG, "Image upload task was not successful.",
task.getException());
}
}
});
}
在上面的代码中,消息(friendlyMessage)是firebaseRecycler的pojo。
我对应用程序的Firebase依赖项。
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation 'com.google.firebase:firebase-config:16.0.0'
implementation 'com.firebaseui:firebase-ui-database:3.3.1'
发布于 2018-06-30 21:09:38
使用taskSnapshot对象的getDownloadUrl()方法已更改。因此,使用
task.getMetadata().getReference().getDownloadUrl().toString()
而不是-
task.getResult().getStorage().getDownloadUrl().toString()
https://stackoverflow.com/questions/51114327
复制相似问题