小编l1b*_*rty的帖子

Firebase Firestore 快照读取计数

我正在尝试优化我的应用程序在 Firesbase 上的读取次数,并检查我使用快照监控实时变化的方式。想象一下,我有一个返回 10 个最新文档的快照,如下所示:

db.collection("cities")
.where("state", "==", "CA").
.orderBy('dateadded', 'desc').limit(10)
.onSnapshot(function(snapshot) {
    ...
})
Run Code Online (Sandbox Code Playgroud)

医生说

每次查询结果发生更改(即添加、删除或修改文档时),快照处理程序都会收到新的查询快照。

这是否意味着每次查询更改时我都会按 10 次读取付费?在此示例中,如果添加了一个新城市(因此使用最新的“添加日期”,因此在查询中排在第一位)将是 1(仅是新城市)还是 10 次读取(完整查询)。

作为一个附带问题,我可以看到我所在的确切读取次数(实时,这样我可以测试一个函数并查看相应的读取次数)。IAM 和管理/配额似乎在“每天读取请求”下提供了这一点,但它不是实时的......

我指的是https://firebase.google.com/docs/firestore/query-data/listen中所述的 Firestore 快照

javascript firebase google-cloud-firestore

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

Safari 上 navigator.storage.estimate() 的替代方案

我想让我的用户知道我的 PWA 在他们的机器上占用了多少空间,对于 Firefox 和 Chrome,我可以使用该navigator.storage.estimate()功能,但 Safari 不支持此功能。

还有其他选择吗?我的研究似乎表明并不存在令我难以置信的事情。

注意:我的测试表明,在 Safari 14.1.2 上,已弃用的 APIwindow.webkitStorageInfonavigator.webkitTemporaryStorage不受支持

javascript progressive-web-apps

6
推荐指数
0
解决办法
441
查看次数

Vuejs - 查找未使用的道具。事件和组件

我有一个 Vuejs SPA,我想清理它并进行一些重构。我想做的一件事是检测

  • props自定义组件中未使用或额外定义的。我的意思不是在组件本身内(这是我通过 执行的eslint-plugin-vue),而是当该组件在另一个组件内的应用程序中的某个位置实例化时。
  • $emits自定义组件中未使用或额外定义的。同样,$emit在实例化组件时,是否有一些从未被实际处理过的东西?
  • data识别实际上不需要反应且可以从中删除的组件data
  • 未使用的组件
  • 我的文件exports中未使用js

我使用的 lintereslint-plugin-vue逐个组件地工作,但在这里我想跨多个组件检查未使用的内容。

我找不到执行这些任务的任何内置工具,执行此操作的最佳方法是什么?

即使应用程序包含数百个组件,我仍然可以手动执行此操作,但理想情况下,我希望经常运行此过程以保持应用程序干净。

vue.js

5
推荐指数
0
解决办法
612
查看次数

组件何时重新渲染?

我正在尝试提高我的 vuejs 应用程序的性能,但我无法弄清楚为什么某些组件正在重新渲染......

根据钩子的生命周期,组件应该重新渲染

当数据改变时

$props看看这里和那里,我认为这意味着对or的更改$data,但我一定是错的,因为通常它们都没有被修改,但仍然触发beforeUpdateupdated钩子,这意味着它确实被重新渲染。那么什么时候组件会被重新渲染呢?

编辑:我如何看到既没有$props也没有$data被修改?我为每个人设置了深度观察者,并且这些观察者不会被触发

编辑2:除了$props和之外$data,对任何插槽的更改也会导致重新渲染。这解释了一些情况,但仍然有一些组件没有任何插槽,钩子在updated没有$props或被$data更改的情况下被触发

编辑3:显然,如果一个组件有一个作为对象的道具,并且该对象的其他部分被修改,它可能会触发组件的更新......仍在尝试对此进行一些确认

vue.js

3
推荐指数
1
解决办法
5523
查看次数

Firebase 云消息传递 - 向消息添加分析标签

我对通过 FCM 的网络推送通知有一个非常具体的问题:如何将分析标签添加到我的通知中?

根据文档

标记消息对于自定义分析非常有用,允许您按标签或标签集过滤传递统计信息。您可以通过设置消息对象中的 fcmOptions.analyticsLabel 字段为通过 HTTP v1 API 发送的任何消息添加标签

我正在使用该messaging.send(Message)方法通过 Node.js Firebase 云函数发送我的推送通知。当我阅读Message对象的文档时,我明白在我的情况下设置这个标签的唯一地方是在这里:

{
  ...
  fcmOptions: {analyticsLabel: [string}
  ...
}
Run Code Online (Sandbox Code Playgroud)

这样对吗?SO上的这个答案似乎也表明了这一点

我已经这样做了,但我仍然没有看到标签出现在我的 Firebase 控制台中,我的意思是当我去https://console.firebase.google.com/u/0/project/{myprojectname}/notification/reporting 时我尝试按数据过滤我没有得到任何数据:

在此处输入图片说明

firebase firebase-cloud-messaging firebase-analytics

3
推荐指数
1
解决办法
403
查看次数