Android Firestore,等待所有文件上载到存储,然后保存
我正在尝试将带有附件的文档(一个文件和一个图像都保存在存储中)保存到Firestore中。只需使用图像或文件,我就可以保存文档,将图像添加到addOnCompleteListener中。但当两者同时存在时,我就陷入了困境 这就是我所做的:Android Firestore,等待所有文件上载到存储,然后保存,android,firebase,google-cloud-firestore,firebase-storage,Android,Firebase,Google Cloud Firestore,Firebase Storage,我正在尝试将带有附件的文档(一个文件和一个图像都保存在存储中)保存到Firestore中。只需使用图像或文件,我就可以保存文档,将图像添加到addOnCompleteListener中。但当两者同时存在时,我就陷入了困境 这就是我所做的: //Create document to be saved docRef = db.collection("messages").document(); docRef.set(message).addOnCompleteListener(
//Create document to be saved
docRef = db.collection("messages").document();
docRef.set(message).addOnCompleteListener(task-> {
if(task.isSuccessful() {
//uploading image to Storage
if(imageBytes != null {
mStorageRef.child("image.jpg").putBytes(imageBytes)
.addOnSuccessListener(taskUpload -> {
taskUpload.getStorage().getDownloadUrl().addOnSuccessListener(uri -> {
message.setPhotoUrl(uri.toString());
//cannot add file upload here because if image is null, it will not be saved.
});
});
}
});
如果我尝试在映像之后保存文件,那么会出现问题,因为它是异步的
更新
我想实现的是:
我不明白你在评论中说“如果图像为空”是什么意思。什么是空的?此外,代码中似乎有语法错误。你是直接从你的应用程序复制的吗?@DougStevenson让我们假设用户没有上传图像,只是上传一个文件。我无法将文件上载放在Images的onCompleteListener中