簡體   English   中英

如何使用 firebase.on() function 制作 promise?

[英]How do you make a promise with firebase .on() function?

我正在嘗試使用 Firebase.on() 方法來檢查何時在我的實時 Firebase 數據庫中創建了新帳戶。 現在,由於我在 Firebase 數據庫中加密此數據,我想第一次加載來自 firebase 的數據以使用我制作的 ZC1C425268E68385D1AB5074C17A94F1 對其進行解密。 是否有可能我可以制作像 promise 這樣的東西,一旦 firebase 將所有數據加載到我的變量中,我就可以這樣做?

var users2 = database.ref("users/").on("value", (snapshot) => {
      const usersLst = snapshot.val();
      users = usersLst
});

我想添加這樣的內容:

var users2 = database.ref("users/").on("value", (snapshot) => {
      const usersLst = snapshot.val();
      users = usersLst
}).then(() => {
      console.log(decryptAccounts(users))
});

我要保留的一件重要的事情是.on() function,因為這將允許我不斷檢查是否有人在數據庫中創建了新帳戶。 有誰知道我可以用來實現相同目標的另一種方法是什么?

您可以將 ref 存儲在變量中以像文檔建議的那樣重用它。

const databaseRef = database.ref("users/");
// use databaseRef.get() with the correct path to your attribute you want to get
// Runs only once
databaseRef.get().then((snapshot) => {
  // Decrypt function
});
// Listens to changes
var users2 = databaseRef .on("value", (snapshot) => {
      const usersLst = snapshot.val();
      users = usersLst
});

這首先獲取一次值,然后您可以解密它們,當值更改時,function 將再次被觸發。

您可以在on() () 中添加decryptAccounts()函數,因此每次收到更新時,您都可以在該數據上運行 function。

var users2 = database.ref("users/").on("value", (snapshot) => {
      const usersLst = snapshot.val();
      
      // runs on new value fetched after every update
      decryptAccounts(usersLst)
})

我在 Dharmaraj 的幫助下找到的答案是你可以這樣做:

database.ref("users/").on("value", (snapshot) => {
    decryptAccounts(snapshot.val());
});

這將每次從數據庫中獲取值並解密它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM