小编nkl*_*htv的帖子

使用 Firebase Storage 和 Firebase Firestore 创建离线第一个应用程序的最佳方式是什么?#AskFirebase

首先我是 Firebase 新手:)

我找不到展示如何使用 Firebase Storage 和 Firebase Firestore 创建离线优先移动应用的教程或示例。我使用 Firestore 来保存有关项目的数据:id、名称、图像。我使用存储来保存图像并将这些图像与 Firestore 中的项目链接。当手机连接到互联网时,一切都很好,但我不确定在设备离线时处理添加项目的最佳方法是什么。

我能想到的唯一好的解决方案:

  1. 将项目的图像属性设置为本地文件 URL,以便图像可以显示在我的回收器视图中。
  2. 同时开始上传项目和图像。
  3. 保留图像sessionUri和本地文件路径,以便稍后可以恢复任务。
  4. 检测连接变化并恢复图像任务(如果有)。
  5. 图片上传完成后,获取下载网址并更新 firestore 中的项目。然后清除持久化镜像任务。

我真的希望 Firebase 客户端库能够开箱即用地处理如此琐碎的用例。

MCVE:

public void addImageOnClick(final View view) {
    final Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(intent, 123);
}

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == 123) {
        save("id1", "name1", intent.getData());
    }
}

private void save(final String id, final String name, …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-storage google-cloud-firestore

7
推荐指数
1
解决办法
2021
查看次数