我看到 Firebase 已经发布了一个新的测试版,叫做 Cloud Firestore。在文档中,对文档的所有操作都进行了很好的描述,但是我找不到任何有关使用 Android 将媒体文件上传和下载到 Cloud Firestore 的信息...
有没有人有上传/下载媒体文件(例如 mp3 文件和图像)的任何信息/教程等?
非常感谢您的回答!
最佳答案
您不能将文件存储到 Firebase Cloud Firestore,而是可以结合使用 Firebase Storage 和 Firebase Cloud Firestore 来激活所需的功能。
Firebase Storage 用于存储文件并从中下载。
Firebase Realtime Database是在上面存储json no-sql数据库。
Firebase Cloud Firestore是Firebase实时数据库的高级版本,与Realtime数据库的区别在于它是基于文档的非sql数据库。
假设您需要开发一个包含数据库和存储的应用程序,您需要将任何数据库与 Firebase 存储结合使用。将文件存储在 firebase 存储中,并将其 url 保存在 firebase realtime 或 firebase cloud firestore 中以供下载和上传。
将文件上传到 firebase 存储:
FirebaseStorage firebaseStorage;
//for firebase storage
firebaseStorage = FirebaseStorage.getInstance();
StorageReference storageReference;
storageReference = firebaseStorage.getReferenceFromUrl("url");
final StorageReference imageFolder = storageReference.child("" + imageName);
imageFolder.putFile(saveUri).addOnSuccessListener(new OnSuccessListener < UploadTask . TaskSnapshot >() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
//submitted sucessfully
imageFolder.getDownloadUrl().addOnSuccessListener(new OnSuccessListener < Uri >() {
@Override
public void onSuccess(Uri uri) {
Log.wtf(TAG, "download image path : " + uri.toString());
//now you have path to the uploaded file save this path to your database
uploadDataToUserUploadedImage(uri);
}
}).addOnFailureListener(new OnFailureListener () {
@Override
public void onFailure(@NonNull Exception e) {
getMvpView().stopProgressLoading();
getMvpView().onError("Fail to submit feedback " + e.getMessage());
getMvpView().hideLoading();
return;
}
});
}
}).addOnProgressListener(new OnProgressListener < UploadTask . TaskSnapshot >() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress =(100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
getMvpView().publishProgress((int) progress);
Log.d(TAG, "onProgress: " + progress);
}
}).addOnFailureListener(new OnFailureListener () {
@Override
public void onFailure(@NonNull Exception e) {
getMvpView().hideLoading();
getMvpView().stopProgressLoading();
getMvpView().onError("Error: " + e.getMessage());
}
});
关于android - 向/从 Google Cloud Firestore 上传和下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49529957/