我正在尝试优化我的应用程序在 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 快照
我想让我的用户知道我的 PWA 在他们的机器上占用了多少空间,对于 Firefox 和 Chrome,我可以使用该navigator.storage.estimate()功能,但 Safari 不支持此功能。
还有其他选择吗?我的研究似乎表明并不存在令我难以置信的事情。
注意:我的测试表明,在 Safari 14.1.2 上,已弃用的 APIwindow.webkitStorageInfo也navigator.webkitTemporaryStorage不受支持
我有一个 Vuejs SPA,我想清理它并进行一些重构。我想做的一件事是检测
props自定义组件中未使用或额外定义的。我的意思不是在组件本身内(这是我通过 执行的eslint-plugin-vue),而是当该组件在另一个组件内的应用程序中的某个位置实例化时。$emits自定义组件中未使用或额外定义的。同样,$emit在实例化组件时,是否有一些从未被实际处理过的东西?data识别实际上不需要反应且可以从中删除的组件dataexports中未使用js我使用的 lintereslint-plugin-vue逐个组件地工作,但在这里我想跨多个组件检查未使用的内容。
我找不到执行这些任务的任何内置工具,执行此操作的最佳方法是什么?
即使应用程序包含数百个组件,我仍然可以手动执行此操作,但理想情况下,我希望经常运行此过程以保持应用程序干净。
我正在尝试提高我的 vuejs 应用程序的性能,但我无法弄清楚为什么某些组件正在重新渲染......
根据钩子的生命周期,组件应该重新渲染
当数据改变时
$props看看这里和那里,我认为这意味着对or的更改$data,但我一定是错的,因为通常它们都没有被修改,但仍然触发beforeUpdate和updated钩子,这意味着它确实被重新渲染。那么什么时候组件会被重新渲染呢?
编辑:我如何看到既没有$props也没有$data被修改?我为每个人设置了深度观察者,并且这些观察者不会被触发
编辑2:除了$props和之外$data,对任何插槽的更改也会导致重新渲染。这解释了一些情况,但仍然有一些组件没有任何插槽,钩子在updated没有$props或被$data更改的情况下被触发
编辑3:显然,如果一个组件有一个作为对象的道具,并且该对象的其他部分被修改,它可能会触发组件的更新......仍在尝试对此进行一些确认
我对通过 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 时我尝试按数据过滤我没有得到任何数据: