【发布时间】:2019-10-04 10:40:22
【问题描述】:
我在编译应用程序时收到错误消息。它说
task.getResult().getDownloadUrl().toString() 找不到符号
filePath.putFile(fileUri).addOnCompleteListener(task -> {
if (task.isSuccessful()){
Map messageTextBody = new HashMap();
messageTextBody.put("message", task.getResult().getDownloadUrl().toString());
messageTextBody.put("name", fileUri.getLastPathSegment());
messageTextBody.put("type", checker);
messageTextBody.put("from", messageSenderID);
messageTextBody.put("to", messageReceiverID);
messageTextBody.put("messageID", messagePushID);
messageTextBody.put("time", saveCurrentTime);
messageTextBody.put("date", saveCurrentDate);
Map messageBodyDetails = new HashMap();
messageBodyDetails.put(messageSenderRef + "/" + messagePushID, messageTextBody);
messageBodyDetails.put(messageReceiverRef + "/" + messagePushID, messageTextBody);
RootRef.updateChildren(messageBodyDetails);
loadingBar.dismiss();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
loadingBar.dismiss();
Toast.makeText(ChatActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double p = (100.0*taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
loadingBar.setMessage((int) p + " % Uploading...");
}
});
【问题讨论】:
-
task.getResult().getDownloadUrl().toString() 的 key("message") 必须与服务器的 json 相同
-
同样的先生,但我不知道为什么它给我这个错误,这里是代码 [链接](https:github.com/sadsouler/Chat)
-
将 task.getResult().getDownloadUrl() 替换为 task.getResult().getStorage().getDownloadUrl()。原因在 stackoverflow.com/a/50159199/10340422 中提到:StorageMetadata 类的 getDownloadUrl() 和 getDownloadUrls() 方法现已弃用。请改用 StorageReference 中的 getDownloadUrl()。
-
当然我会尝试
-
我试过了,但应用程序崩溃并把我送到主要活动