javascript - 在 iOS 中使用 safari 并立即在 Nuxt.js 中重新加载时,Firebase 匿名身份验证数据已重置
问题描述
我在 Nuxt.js 中编写了一个简单的代码,如下所示。
<template>
<div>
uid:{{ user.uid }}
</div>
</template>
<script>
import firebase from "firebase";
export default {
data() {
return {
user: {}
};
},
mounted: function() {
this.initFirebase();
},
methods: {
initFirebase: function() {
if (!firebase.apps.length) {
firebase.initializeApp({
apiKey: process.env.API_KEY,
authDomain: process.env.AUTH_DOMAIN,
databaseURL: process.env.DATABASE_URL,
projectId: process.env.PROJECT_ID,
storageBucket: process.env.STORAGE_BUCKET,
messagingSenderId: process.env.MESSAGING_SENDER_ID
});
}
firebase.auth().onAuthStateChanged((user) => {
if (user) {
this.user = user
console.log("authed");
} else {
console.log("authing");
firebase.auth().signInAnonymously()
}
});
},
}
};
</script>
我希望这段代码只会验证一次,并且 UID 在以后的访问中永远不会改变。
它工作得几乎完美,但在 iOS 和 Safari 中结合使用,当我访问此页面时 UID 会发生变化,并在 UID 显示后立即重新加载。
我清除了 safari 的缓存并尝试了几次,并注意到如果我等待 10 或 20 秒,这不会发生。如果UID一旦改变,它就永远不会改变。
我从未在 Android 或 iOS 中的任何其他浏览器(例如 chrome)中看到过这种情况。
我希望这些行为相同。
如果您有任何好的想法,请告诉我。
解决方案
推荐阅读
- php - 更改 Woocommerce 中默认选择的支付网关
- c# - 错误 CS0246:找不到类型或命名空间名称“CharacterMotor”。您是否缺少程序集参考?
- powerquery - 在 power query 中引用 CurrentWorkbook 时,提供的文件路径必须是有效的绝对路径
- python - 无法加载 uWSGI 插件:dlopen(./python_plugin.so, 10): image not found
- node.js - 如何在服务器端使用 express 获取 react-router v4 定义的参数
- object - 如何将键值对添加到对象?
- python - 尽管语法正确,但 Memoryview 中的切片分配会引发 ValueError
- spring-boot - 当请求的属性与实体类型不同时如何验证 REST 请求
- html - 无法获取 /action_page.php?(链接 HTML 页面)
- vue.js - Vue-Chartjs 反应式图表选项传递