gpt4 book ai didi

javascript - Firebase child_added

转载 作者:行者123 更新时间:2023-11-30 08:58:11 25 4
gpt4 key购买 nike

我的应用现在可以运行了,但我不确定它为什么运行...

我有一些类似的代码:

var itemRef;

listRef.on('child_added', function(childSnapshot, prevChildName) {
itemRef = childSnapshot;
});

问题是,当我稍后尝试使用 itemRef 时,它不起作用。然而,我花了几个小时才意识到引用不起作用,因为 itemRef.name() 返回了正确的引用名称。

在搜索 API 时,我遇到了 .ref() 函数。 API 声明 .ref() 返回“生成此 DataSnapshot 的位置的 Firebase 引用”。这让这个函数对我来说完全没有意义,但我决定尝试一下:

var itemRef;

listRef.on('child_added', function(childSnapshot, prevChildName) {
itemRef = childSnapshot.ref();
});

任何人都可以向我解释为什么 .ref() 使我的引用起作用,而它所做的只是返回“生成此 DataSnapshot 的位置的 Firebase 引用。” ??

最佳答案

Firebase 公开两种不同类型的对象:Firebase referencesDataSnapshots .

Firebase 引用就像一条路径。它只是指向 Firebase 中的一个位置。您可以使用它来设置 () 数据、使用 on() 附加事件回调等。

DataSnapshot 存储在某个时间点从 Firebase 检索到的数据。它只包含数据。您可以调用 .child()、.val() 等来读取数据,但不能使用它来执行 set() 或任何其他 Firebase 操作。

因此您的第一个代码片段不起作用,因为它存储的是快照,这与 Firebase 引用不同。碰巧这两个对象都有一个 .name() 函数,它的行为相同,这可能在这里引起了混淆。

关于javascript - Firebase child_added,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com