0
使用Firebase API從數據庫中讀取數據會讓我在Web用戶界面加載後1-2秒內突然發生一些尷尬事情。有沒有人有任何替代閱讀數據?我試過REST API,但是我仍然需要使用Firebase authlistener,它在我能夠檢索用戶ID並使用REST API之前再次給了我一個延遲。不管我讀的數據有多小。檢索數據時的Firebase延遲
我會很感激任何超過加載屏幕!下面
使用Firebase API從數據庫中讀取數據會讓我在Web用戶界面加載後1-2秒內突然發生一些尷尬事情。有沒有人有任何替代閱讀數據?我試過REST API,但是我仍然需要使用Firebase authlistener,它在我能夠檢索用戶ID並使用REST API之前再次給了我一個延遲。不管我讀的數據有多小。檢索數據時的Firebase延遲
我會很感激任何超過加載屏幕!下面
是一個簡單的例子來獲取你不必等待這一承諾得到解決,打開申購的火力
const app = firebase.initializeApp()
const db = app.database();
let unsub;
const user = new Promise((resolve, reject) => {
unsub = app.onAuthStateChanged(
status => {
if (status === null) {
resolve(app.signInWithEmailAndPassword());
} else resolve(user);
},
err => reject(err);
)
});
user.then(unsub, unsub);
db.ref("path/to/data").on("child_added",() => {});
// this promise will fail if the user is not
// auth
const data = db.ref("path/to/data").once("value");
用戶狀態。然而,取決於您的應用程序的設置,如果您未通過身份驗證,則無法讀取數據庫。
所以一個解決方案可以非常直接。
隨着重構的一點點,我們有:
const getData =() => db.ref("path/to/data").once("value");
user.then(getData).then(data => { /* data here */ });
這最後承諾將有效地只要用戶身份驗證解決一次當且僅當一切正常。您可以在對用戶進行身份驗證之前打開訂閱,但不能保證更快。打敗它的唯一方法是簡單地刪除首先訪問數據庫所需的閱讀權限...
你好,你能否詳細說一點?我在某些項目中使用了Firebase,因此我可能可以幫助您,但我不明白您的要求與網絡相關,或者與您實施Firebase訂閱的方式有關。 – adz5A
我在尋找的是從firebase數據庫中讀取數據的更快方式。如果我現在加載我的頁面,當前登錄用戶的用戶信息在加載頁面後1-2秒內出現。 – kensil