gpt4 book ai didi

firebase - 如何在具有多个优先级的 Firebase 中进行排序?

转载 作者:行者123 更新时间:2023-12-02 04:55:30 24 4
gpt4 key购买 nike

我在 Firebase 中有这样的数据:

mainNode
pictures
-JJr1PypNhBOCjSIf_0j
user: user1
view: 20
-JJr1PadFxtUs_wCtj2a
user: user2
view: 500
users
-user1
name: 'Austin'
-user2
name: 'Bucha'

我有两个案例。

  1. 获取 UserX 的照片
  2. 按观看次数最多显示图片

如果我这样运行并使用userIdsetPriority,我可以获得case#1所需的结果

new Firebase("https://xxx.firebaseio.com/pictures")
.startAt('user1')
.endAt('user1')
.once('value', show);

但是,当我想要所有图片按 MOST View 限制排序为 10 时,我迷路了。由于 setPriority 可以使用一次,我怎样才能得到 case#2 的结果?请在这里告诉我更好的方法,并在此先感谢。

最佳答案

对于用户 X 的照片,只需将该用户照片的列表(索引)存储在单独的位置:

/my_photos/$user_id/$photo_id/<true>
/photos/$photo_id/<data> (with priority for most viewed)

现在要获取观看次数最多的视频,请使用如下调用:

new Firebase(URL).child('photos').endAt().limit(10).once('value', function(snap) {
console.log('most viewed', snap.val());
});

并得到属于我的那些:

new Firebase(URL).child('my_photos/kato').on('child_added', function(indexSnap) {
new Firebase(URL).child('photos/'+indexSnap.name()).once('value', function(photoSnap) {
console.log('one of my photos', console.log(photoSnap.val());
});
});

类似FirebaseIndex 的工具或 Firebase.util.join可以抽象出join index和data的过程:

var fb = new Firebase(URL);
var joined = new FirebaseIndex( fb.child('my_photos/kato'), fb.child('photos') );
joined.on('child_added', function(snap) {
console.log('one of my photos', snap.val());
});

关于firebase - 如何在具有多个优先级的 Firebase 中进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22894697/

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