【问题标题】:Deleted Firestore documents still being retrieved仍在检索已删除的 Firestore 文档
【发布时间】:2018-08-02 05:16:27
【问题描述】:

我已通过 Cloud Functions 中的触发器的批量删除删除了一些文档。控制台显示它们已被删除,但是,我的应用程序仍在检索文档!这一定是firestore的一个错误,而且是一个非常重要的错误。我发现另一个用户有同样的问题here

我使用的路径是/users/{id}/timeline/{postId}。我删除了一个特定的postId。

【问题讨论】:

    标签: android firebase google-cloud-firestore


    【解决方案1】:

    您的问题可能是应用程序使用缓存并从中加载一些文档。您可以尝试的一件事是禁用离线持久性。

    如果你使用Android with Real-Time Database,你可以试试这个:

    FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    

    iOS + Real-Time Database

    Database.database().isPersistenceEnabled = true
    

    如果您使用的是FireStore,请使用以下内容:

    安卓:

    FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
            .setPersistenceEnabled(false)
            .build();
    db.setFirestoreSettings(settings);
    

    iOS:

    let settings = FirestoreSettings()
    settings.isPersistenceEnabled = false
    
    // Any additional options
    // ...
    
    // Enable offline data persistence
    let db = Firestore.firestore()
    db.settings = settings
    

    【讨论】:

    • 就是这样!谢谢。
    • @Tometoyou 我真的不知道,但看看这个:stackoverflow.com/q/23908189/5508719
    • 对于 Firestore 也是:FirestoreSettings().isPersistenceEnabled = false
    • 我在做这个服务器端,有什么选择?
    • 我需要导入什么才能使此设置生效?
    【解决方案2】:

    文档在删除后仍可获取一段时间。它们的存在状态依赖于 DocumentSnapshot 属性 - 'exists',并且可以使用文档和集合的 snapshotChanges() 方法在管道中读取和过滤。请看下面的例子:

    ...
    .snapshotChanges()
          .pipe(
            map((actions: DocumentChangeAction<T>[]) => {
              return actions
                .filter((a: DocumentChangeAction<T>) => a.payload.doc.exists)
                .map((a: DocumentChangeAction<T>) => {
                  const data: T = {...a.payload.doc.data() as {}} as T;
                  data['id'] = a.payload.doc.id;
                  return data;
                });
            })
          );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2021-04-02
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2021-12-31
      • 2023-02-06
      相关资源
      最近更新 更多