[英]offline/online data sync in firestore - Laravel
我正在嘗試使用Laravel
和vue.js
開發一個網絡應用程序,即使我處於離線狀態,我也可以在其中同步來自 firestore 的數據。 我在firestore的特性中看到它提供了這個特性。 但我不知道如何將此功能加入到我的項目中。 我已經在 Laravel 中為 Firestore 克隆了suhasrkms/laravel-with-firestore 。 但我面臨的主要問題是我不知道如何添加離線代碼/持久性。 我嘗試在 firestore 文檔中提供的 resources/js/offline-persistence.js 中添加代碼。 我也嘗試在我的刀片文件中添加代碼。
請為我提供解決方案,您的回復對我很有價值。
<script type="text/javascript">
firebase.firestore().enablePersistence()
.catch((err) => alert(Something failed for enablePersistence, code: ${err.code}));
firebase.firestore().collection('test')
.onSnapshot(snaps => {
if (snaps.empty) { return; }
const preDataElm = document.getElementById("preData");
while (preDataElm.firstChild) {
preDataElm.removeChild(preDataElm.firstChild);
}
let list = snaps.docs.map(snap => {
return {id: snap.id, ...snap.data()};
});
let newElm = document.createElement("PRE");
newElm.innerText = JSON.stringify(list, null, 2);
return preDataElm.appendChild(newElm);
});
function tryMe() {
document.getElementById("result").innerHtml = "";
firebase.firestore()
.collection('test')
.add({test: new Date().toString()})
.then((docRef) => alert(Data inserted successfuly ID: ${docRef.id}));
}
</script>
要添加離線代碼/持久性,您需要在初始化 Cloud Firestore 時啟用或禁用離線持久性,如文檔中所述:
對於 Android 和 iOS,默認啟用離線持久化。 要禁用持久性,請將 PersistenceEnabled 選項設置為 false。
對於 web,默認關閉離線持久化。要啟用持久化,調用 enablePersistence 方法。 Cloud Firestore 的緩存不會在會話之間自動清除。因此,如果您的網絡應用處理敏感信息,請確保在啟用持久性之前詢問用戶他們是否在受信任的設備上。
您也可以參考計算器案例1和案例2 ,其中一個類似的問題已經面臨這得到了通過建立持久的解決OP:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.