你如何用 firebase .on() 函数做出承诺?
How do you make a promise with firebase .on() function?
我正在尝试使用 Firebase .on() 方法来检查何时在我的实时 Firebase 数据库中创建了新帐户。现在,因为我在 Firebase 数据库中加密了这些数据,所以我想在第一次加载来自 firebase 的数据时使用我创建的函数对其进行解密。我有没有可能做出类似承诺的事情,一旦 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() 函数,因为它可以让我不断检查是否有人在数据库中创建了新帐户。有谁知道我可以用来实现同样目标的另一种方法是什么?
您可以将 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
});
这首先获取值一次,然后你可以解密它们,当值改变时,.on 函数将再次被触发。
您只需在 on()
中添加 decryptAccounts()
函数,这样每次收到更新时,您都可以 运行 该函数处理该数据。
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());
});
这将每次从数据库中获取值并解密它们。
我正在尝试使用 Firebase .on() 方法来检查何时在我的实时 Firebase 数据库中创建了新帐户。现在,因为我在 Firebase 数据库中加密了这些数据,所以我想在第一次加载来自 firebase 的数据时使用我创建的函数对其进行解密。我有没有可能做出类似承诺的事情,一旦 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() 函数,因为它可以让我不断检查是否有人在数据库中创建了新帐户。有谁知道我可以用来实现同样目标的另一种方法是什么?
您可以将 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
});
这首先获取值一次,然后你可以解密它们,当值改变时,.on 函数将再次被触发。
您只需在 on()
中添加 decryptAccounts()
函数,这样每次收到更新时,您都可以 运行 该函数处理该数据。
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());
});
这将每次从数据库中获取值并解密它们。