问题描述
目前,Firebase支持平面数据布局的多路径数据更新。但是,当提取数据时,是否可以使用类似的方法从Firebase中的多个位置获取多路径数据?例如,我需要将一些数据连接在一起和我目前的代码看起来像这样:
$ $ p $ code ref.child('data_1 /')。once('value',function快照){
var test_string_1 = snapshot.val();
ref.child('data_2 /')。once('value',function(snapshot){
var test_string_2 = snapshot.val();
//...etc
});
});
当需要从多个节点获取数据时,这种嵌套的方法非常深入。所以我想知道是否有一个更好更快的方法,如多路径获取,从多个位置获取数据。
如果路径/ ref不相互依赖,您可以像这样检索它们:
var test_1 = ref.child('data_1 /');
var test_2 = ref.child('data_2 /');
Promise.all([
test_1.once('value'),
test_2.once('value')
))。then(function(snapshots){
var test_string_1 = snapshots [0] .val();
var test_string_2 = snapshots [1] .val();
});
请参阅:
Currently, Firebase supports multipath data updates for a flat data layout. However when it comes to fetching data, is it possible to use a similar method to multipath fetch data from multiple locations in Firebase?
For example I need to join some data together and my current code looks like this:
ref.child('data_1/').once('value', function (snapshot) {
var test_string_1 = snapshot.val();
ref.child('data_2/').once('value', function (snapshot) {
var test_string_2 = snapshot.val();
//...etc
});
});
When it comes to having to fetch data from multiple nodes, this nested approach goes quite deep. So I'd like to know if there is a better and faster method, like multipath fetching, to get data from multiple locations.
If the paths/refs are not dependent on each other, you can retrieve them like this:
var test_1 = ref.child('data_1/');
var test_2 = ref.child('data_2/');
Promise.all([
test_1.once('value'),
test_2.once('value')
]).then(function(snapshots) {
var test_string_1 = snapshots[0].val();
var test_string_2 = snapshots[1].val();
});
See:
- The MDN documentation on
Promise.all()
- Speed up fetching posts for my social network app by using query instead of observing a single event repeatedly
这篇关于Firebase多路径抓取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!