【发布时间】:2018-11-24 00:37:06
【问题描述】:
我正在使用 Firebase 和 ReactJS 创建一个使用 Firestore 的网站。当我使用以下 Javascript 代码从 Firestore 读取时,它是成功的,但是,在刷新页面后一分钟内会发生额外的 GET 请求。
firestore
.collection("users")
.doc(uid)
.get()
.then(doc => {
if (!doc.exists) {
console.error("User " + uid + " does not exist. Cannot retrieve document");
} else {
const { avatar, displayName } = doc.data();
this.setState({ avatar: avatar, displayName: displayName });
}
})
.catch(err => {
console.error("Error getting document", err);
});
如果我在最后一次 GET 之前刷新页面,我会在控制台中收到警告跨域请求被阻止。从 Firestore 获取数据我仍然没有遇到任何问题。
跨域请求被阻止:同源策略不允许读取位于https://firestore.googleapis.com/google.firestore.v1beta1.Firestore/Listen/channel?database=projects%2Fsword-pear%2Fdatabases%2F(default)&gsessionid=QbGcouT4k6BUq5C33CSi25Ih6UQR6QI2&VER=8&RID=rpc&SID=wLKF3u5yBNBdMKhPjNHJwQ&CI=0&AID=6&TYPE=xmlhttp&zx=7mjvphigpy5i&t=2 的远程资源。 (原因:CORS 请求没有成功)
我假设服务器仍在尝试在刷新之前将数据发送到原始网页,但我不知道为什么如果我在前几毫秒内获取数据,GET 会花费这么长时间。
【问题讨论】:
-
我怀疑延迟的请求只是 Firestore 使用的协议的一部分,并且是它尝试保持连接活动的一部分,以便后续进行得更快。
-
这对我来说很有意义。我希望这与其他人在其应用程序中的体验相似,但如果没有任何潜在问题,我可以忍受它
标签: javascript reactjs firebase google-cloud-firestore