由于Google决定对Firebase Firestore和Firebase Cloud功能的使用的几乎每个方面收费,因此,我将尽一切努力确保我们的代码尽可能高效地执行对Firestore的查询。
我正在做一些孤立的测试,我将在这里发布这些更新,以尝试确定Firebase的使用情况统计信息是否准确,但乍一看似乎有些不对。
[以下可观察结果如何在应用启动时在角度应用程序中的我的身份验证服务的构造函数中实例化,如何导致超过70个以上的读取请求?
在实例化此可观察实例的此实例之前或之后,我可以确认数据没有发生任何更改。
我们已经等待使用率稳定下来,在零小时使用率大约一个小时之后,我们启动了应用程序的1个实例,该实例启动了以下可观察的动作:
this.auth$ = this.firebaseAuth.authState.pipe(
switchMap((user) => {
if(user) {
console.log("[auth service] user update:", user);
return this.firestore.doc(`users/${user.uid}`).valueChanges();
} else {
console.log("[auth service] user not signed in");
return of(null);
}
})
);
一旦加载了应用程序,我们立即将其关闭。
[大约5分钟后,我们在Firebase控制台中查看了使用情况统计信息,发现70多个读取请求已添加到我们的使用情况中。为什么?
根据下面的评论,正如我们实际上已经怀疑的那样,在浏览器中打开Firebase控制台会导致对我们的配额的其他警告,但是,这仍然不能解释我们的70多个读取请求初步测试。或者,是吗?一个典型的数据库将从控制台中的视图中读取多少次?没有四处走动?