相关疑难解决方法(0)

Firebase Cloud Firestore 的成本优化模式:通过集合获取文档

我的目标是在使用 Firebase Cloud Firestore 时优化应用架构的成本。我了解 Cloud Firestore 的定价模型是按读/写计算的。因此,出于成本优化的目的,我正在考虑以下模式。我想知道这是“最佳实践”还是反模式。

这个想法是,每当我创建一个新文档以添加到集合中时,我都会让用户更新第二个“主文档”,其中包含文档内容的某个子集以及来自许多不同用户的许多类似文档的相同内容。

然后,当我去获取列表数据时,我不是获取一个集合并为从集合中读取的每个文档收取费用(多次读取),而是只检索主文档(一次读取)。

在代码中,它将如下所示。

取而代之的是:
db.collection("reviews")
  .get()
  .then(querySnapshot => {
    querySnapshot.forEach(doc => {
      // doc.data() is never undefined for query doc snapshots
      console.log(doc.id, " => ", doc.data());
    });
  })
Run Code Online (Sandbox Code Playgroud) 我这样做:
const docRef = db.collection("reviews").doc("MasterList");

docRef.get().then(doc => {
  if (doc.exists) {
    console.log("Document data:", doc.data());
  } else {
    // doc.data() will be undefined in this case
    console.log("No such document!");
  }
})
Run Code Online (Sandbox Code Playgroud)

这是成本方面的最佳实践吗?或者这是一种反模式?

firebase google-cloud-platform google-cloud-firestore

8
推荐指数
1
解决办法
2345
查看次数

Cloud Firestore:如何计算读数?

在Cloud Firestore中,我们负责读/写/删除操作.也许这对某些人来说是显而易见的,但我找不到任何被认为是读过的东西.如果我有10个记录的集合,并且我以列表的形式获取所有记录,它是否计为10次读取或1次(因为我只从数据库中读取一次)?

firebase google-cloud-firestore

6
推荐指数
3
解决办法
2864
查看次数

如何避免使用缓存进行不必要的Firestore读取

我有按日期排序的旅行数据(大集合)列表。

现有行为

我将所有行程数据存储到SqlLite Db中。对于添加的每个新数据,我通常会收到fcm通知,并且使用上次更新的时间概念仅同步了添加的新数据。这样,当cx打开应用程序时,他将始终从我的数据库中读取数据,从而节省了读取网络操作。

我如何在Firestore中实现相同目标?

需要考虑的几个问题:

  • Firestore get()始终尝试首先从服务器获取数据,即使我将CACHE添加到查询中,我如何也只能同步已更新的文档
  • 在我的Recyler视图中,我希望按字段日期而不是lut(last-modified-time)对数据进行排序
  • 使用FireStore Snapshot Listener,我无法查询这么大的记录集。

java android firebase firebaseui google-cloud-firestore

3
推荐指数
2
解决办法
3600
查看次数