- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个案例需要获取所有 event
对象。每个 event
对象都有一个属性 city_id
,它是与所有 cities
列表中的单个 city
对象的关系键>.
...
|- events
| |- event_id
| | |- title
| | |- city_id
|
|- cities
| |- city_id
| | |- name
| | |- location
...
所以我正在做一些类似join
查询的事情:
const rootRef = firebase.database().ref();
async function getAllEvents() {
const eventsRef = rootRef.child('events');
const eventsArray = [];
await eventsRef.on('child_added', async (snapshot) => {
const eventObject = snapshot.val();
const cityObject = await getEventCity(eventObject.city_id);
eventObject.city = cityObject;
eventsArray.psuh(eventObject);
});
return eventsArray;
}
function getEventCity(cityId) {
return rootRef.child('cities')
.child(cityId)
.once('value', (venue) => {
return venue.val();
});
}
一切都适用于查询。问题是我想获取数组中的所有事件,但以下代码不起作用:
const allEvents = getAllEvents();
在 eventsRef.on('child_added)
之前我有 await
的事件它仍然返回初始空数组。
我做错了什么,当 .on('child_added')
上的所有内容都已完成获取时,我该如何捕获这一刻?
最佳答案
唯一知道何时加载初始数据的方法是使用 value
事件。我还没有真正使用过 async
/await
,但希望您会需要这样的东西:
async function getAllEvents() {
const eventsRef = rootRef.child('events');
const eventsArray = [];
await eventsRef.on('value', async (snapshot) => {
snapshot.foreach(function(child) {
const eventObject = child.val();
const cityObject = await getEventCity(eventObject.city_id);
eventObject.city = cityObject;
eventsArray.push(eventObject);
});
});
return eventsArray;
}
关于javascript - Firebase:child_added 完成后如何获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079637/
运行这两个代码应该有什么区别吗? ref.on('child_added',function(child,prev){ console.log(child.key+prev); } ref.off(
我有相当大的数据集,可能有数百万个对象,我需要触发 child_added 事件并获取最后添加的子项。但是,每当我启动服务时,它都会为数据集中的每个初始子项触发一次事件。 如何避免这种行为? 编辑:
来自 Firebase API: Child Added: This event will be triggered once for each initial child at this locat
我正在使用 Firebase 开发 HTML5 移动消息传递应用程序。我遇到了一个我无法解决的问题。该应用程序有多个 channel (聊天室)。当一条消息第一次添加到一个 channel 时,它按预
我的应用现在可以运行了,但我不确定它为什么运行... 我有一些类似的代码: var itemRef; listRef.on('child_added', function(childSnapshot,
我有一个大型数据集(约 10 万个条目),正在使用“child_added”事件进行订阅。使用 Node 7 和 firebase 3.6.1,这样做似乎会在触发单个 child_added 事件之前
我创建了这个处理程序来监视正在创建的新子项。这个小技巧阻止 child_added 事件在每次页面加载时触发我的代码。相反,它只会在实际添加内容时触发。 // Listen for new roo
我正在将 Firebase 和 Node 与 Redux 一起使用。我正在从一个键加载所有对象,如下所示。 firebaseDb.child('invites').on('child_added',
我必须从 Firebase 读取大量数据(约 3000 个子项和约 1.5 MB),如果我可以向用户显示下载的内容,那就太好了。因此,我决定使用 child_added 来显示它们中的每一个,但它并没
首先,我不确定是否存在真正的问题,但我想我会分享我的推理。 我使用 Firebase 作为数据库/后端,用于归档来自家里各种传感器的所有数据,并在托管中使用带有炫酷图形的 UI。因此,每 10 分钟我
我有一个 post 列表,我正在使用 .on('child_add') 获取它们,问题是我只想获取 post 是在添加项目时发布的,而不是在删除项目时发布的,但是,似乎 .on('child_adde
我有一个指向 privateMessages 的引用,如下所示: messagesRef: firebase.database().ref("privateMessages") 下面是 /privat
我想在推送时从 firebase 数据库获取最近添加的子节点,但根本不是数据库的最后一个子节点。 问题是典型的 child_added 事件无论如何都会获取最后一个子元素,即使是在第一次加载页面时也是
我有一个案例需要获取所有 event 对象。每个 event 对象都有一个属性 city_id,它是与所有 cities 列表中的单个 city 对象的关系键>. ... |- events | |
对于我的 Firebase 云功能,我正在尝试添加最后一个子项目,以便继续执行该项目的任务。我的结构是这样的: -Tips -TipsId -Safe
我正在使用 Angular2、ionic2 和 firebase 开发聊天应用程序。为了获得聊天,我尝试了以下方法 Controller 代码: displayAllMessage() { l
我有一个网站,用户可以通过选择菜单中的项目来下订单。 它的设置是为了让您按下菜单页面上的“下订单”按钮 http://www.waipahe.co.uk/takeaway/menu.html 然后已下
我有一个应用程序,我想在其中加载一些初始数据(使用 Firebase.once('value') 完成),然后在稍后的某个时候我想接收事件已添加到该 Firebase 引用的子节点的数量。 为此,我想
我在同一条路径上有 2 个“限制”查询。我首先加载“limit(1)”,然后加载“limit(50)”。 当我加载第二个查询时, child_ added 事件不会按顺序触发。相反,列表中的最后一项(
当用户“激活”其帐户后,尝试向用户显示所有用户数据(包括当前用户)时,我遇到了此问题。当监听列表中某个项目的 onValue 更改,然后在回调中监听该列表的 child_added 事件时,原始“监视
我是一名优秀的程序员,十分优秀!