【问题标题】:Flutter Firestore offline persistentFlutter Firestore 离线持久化
【发布时间】:2019-03-06 19:31:23
【问题描述】:

我想使用持久的离线 Firestore,但我没有得到正确的代码。在 kotlin 教程上是这样说的:

db.collection("members").document()
    .addSnapshotListener(object : EventListener<DocumentSnapshot> {
        override fun onEvent(snapshot: DocumentSnapshot?,
                            e: FirebaseFirestoreException?) {
            if (e != null) {
                Log.w(ContentValues.TAG, "Listen error", e)
                err_msg.text = e.message
                err_msg.visibility = View.VISIBLE;
                return
            }
            snapshot?.reference?.set(data)
            val intent = Intent()
            setResult(Activity.RESULT_OK, intent)
            this@FormActivity.finish()
        }
    }
)

我尝试在颤振上使用此代码:

Firestore.instance.collection("hega").document().setData(data);

也试试这个:

Firestore.instance.collection("hega").add(data);

两者都在在线时工作,但在设备离线时不工作(使用飞行模式)

更新: 所以上面的代码实际上是离线工作的。

Firestore.instance.collection("hega").document().setData(data);

我只需要为文档快照设置流侦听器,以查看数据是否已添加到本地缓存中。但另一个问题是当设备上线时,离线数据没有同步到服务器。

【问题讨论】:

  • 你在 Flutter 中使用的是 kotlin 代码吗?
  • 不,我刚刚在 kotlin 上找到了一个如何离线使用 firestore 的教程。我想在颤振飞镖上使用它。
  • 设备上线后有没有找到解决办法?
  • 嗨@rickdroio 什么都不做,一切都已经由 sdk 处理了。

标签: dart flutter google-cloud-firestore


【解决方案1】:

您可以像flutterfire docs 中提到的那样启用离线数据持久性。

网页版

await FirebaseFirestore.instance.enablePersistence();

对于其他平台

FirebaseFirestore.instance.settings = Settings(persistenceEnabled: false);

【讨论】:

    猜你喜欢
    • 2021-10-27
    • 2019-05-22
    • 1970-01-01
    • 2021-05-10
    • 2021-04-25
    • 1970-01-01
    • 2018-04-17
    • 2019-05-02
    • 2020-11-15
    相关资源
    最近更新 更多