我正在使用Firebase / Firestore 7.14.4将数据存储在单页Web应用程序中。在Chrome,Firefox和其他应用程序上,该应用程序运行良好。但是,在Safari中,在Mac和iOS上,登录到DocumentReference.get()
后的第一个调用都需要花费几分钟和几分钟的时间,或者甚至永远无法完成。发生这种情况:
产生此问题的代码再简单不过了。
firebase.auth().onAuthStateChanged( async (user) => {
if( user ) {
const userDoc = db.collection( 'users' ).doc( user.uid );
const docSnapshot = await userDoc.get(); // <- .get() never returns
// ...
}
}
同样,仅在Mac和iOS Safari上会发生这种情况,在Chrome或Firefox中不会发生。
还有其他人看到过这样的东西吗?
我刚刚在Chrome和Safari中都运行了这个简单的示例:
var start = Date.now();
firebase.auth().signInAnonymously();
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
firebase.firestore().doc("61881285/me").get().then(function(doc) {
console.log(`Signed in and got doc in ${Date.now()-start}ms`);
console.log(doc.id, '=>', doc.data());
});
}
});
结果:
让我知道您在运行jsbin时是否得到不同的结果。
如果您的代码获得了不同的结果,但以上内容却没有,我很乐意看到一个类似的示例,我们可以运行该示例来重现这些结果。