从Google Cloud Firestore上载和下载文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Google Cloud Firestore上载和下载文件相关的知识,希望对你有一定的参考价值。
我发现Firebase已经发布了一个名为Cloud Firestore的新测试版。在文档中,对文档的所有操作都进行了很好的描述,但是我无法找到任何关于使用android将媒体文件上传和下载到Cloud Firestore的信息......
有没有人有任何信息/教程等上传/下载媒体文件(例如mp3文件和图像)?
非常感谢您提前获得答案!
您无法将文件存储到Firebase Cloud Firestore,而是可以使用Firebase存储和Firebase Cloud Firestore的组合来激活所需的功能。
Firebase存储是存储文件并从中下载。
Firebase实时数据库是为了存储json no-sql数据库。
Firebase Cloud Firestore是Firebase实时数据库的高级版本,与Realtime数据库的区别在于它是基于Document的非sql数据库。
假设您需要使用数据库和存储开发应用程序,则需要将任何数据库与Firebase存储相结合。将文件存储在firebase存储中,并将其URL保存在firebase实时或firebase云存储中,以便下载和上载它们。
要在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());
}
});
以上是关于从Google Cloud Firestore上载和下载文件的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Python 运行时云函数访问 Google Cloud Platform Firestore 触发器
限制通过VPC网络访问Google Cloud Firestore。
Google Cloud Firestore 与 Google Cloud Spanner 的区别?
导出 Firestore 备份数据的云功能。使用 firebase-admin 或 @google-cloud/firestore?
使用 firebase_admin 或 google.cloud.firestore 在 python 中的 Firestore 客户端(作为用户)