我看到 Firebase 已经发布了一个新的测试版,名为 Cloud Firestore。在文档中,文档的所有操作都描述得非常好,但我无法找到有关使用 Android 将媒体文件上传和下载到 Cloud Firestore 的任何信息...
有人有上传/下载媒体文件(例如 mp3 文件和图像)的信息/教程等吗?
预先非常感谢您的答复!
您无法将文件存储到 Firebase Cloud Firestore,而是可以结合使用 Firebase 存储和 Firebase Cloud Firestore 来激活所需的功能。
Firebase 存储是存储文件并从中下载。
Firebase 实时数据库就是在上面存储json no-sql数据库。
Firebase 云 Firestore是Firebase实时数据库的高级版本,与实时数据库的区别在于它是基于文档的非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());
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)