#javascript #firebase #firebase-authentication #nuxt.js
# #javascript #firebase #firebase-аутентификация #nuxt.js
Вопрос:
Я сделал простой код, подобный следующему в 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.
Я хочу, чтобы они вели себя одинаково.
Пожалуйста, дайте мне знать, если у вас есть какие-либо хорошие идеи.
Комментарии:
1. Теперь я понял, что это также произойдет в vue.js , а также обратите внимание, что этого не произойдет, когда я полностью очистил кэш в safari. Я пытался очистить кеш только той страницы, которую я создал, но не целые данные. Но я думаю, что трудно сказать клиенту очистить кеш, поэтому сейчас я все еще ищу способ избежать этого вопроса.