目次
概要
以下のように実装します
・firestoreにデプロイした時刻を保存
・frontはその時刻が変わったらリロードする
デプロイした時刻を保存するスクリプトを作成
このようなスクリプトを作成する
post-deploy.js と名付けよう!
const firebase = require("firebase");
require("firebase/firestore");
const firebaseConfig = {}; // your config!
firebase.initializeApp(firebaseConfig);
// main
(async function () {
const db = firebase.firestore();
const infoRef = db.collection("app").doc("info");
const now = new Date();
infoRef.set({released_time: +new Date()});
})();
firebase.jsonに先程のスクリプトを実行させるための記述する
↓こんなふうにしよう
"postdeploy": "node deploy/post-deploy.js"
main.jsにこのブロックを追加しよう
(async function() {
const infoRef = db.collection("app").doc("info");
const info = await infoRef.get();
if (!info.exists) {
return;
}
const releasedTime = info.data().released_time;
infoRef.onSnapshot(snapshot => {
const newReleasedTime = snapshot.data().released_time;
if (releasedTime !== newReleasedTime) {
location.reload();
}
});
})();
おわり
これでデプロイ後にリロードされるようになる。はずだぜ!
babu
何かあっても責任は取りません!