我正在尝试测试Firebase以允许用户使用发布评论push.我想用以下内容显示我检索的数据;
fbl.child('sell').limit(20).on("value", function(fbdata) {
// handle data display here
}
Run Code Online (Sandbox Code Playgroud)
问题是数据按最旧到最新的顺序返回 - 我希望它按相反的顺序排列.Firebase可以这样做吗?
我正在尝试查询我的数据库,以便它根据子键检索有序列表.我这样做(见下文),但没有任何反应,这意味着它返回一个完全按照存储在Firebase数据库中的方式排序的对象.到底是怎么回事?
self.getAllProfiles = function () {
var qProfile = $q.defer();
var ref = new Firebase(FBURL);
ref.child("users").orderByChild('last_update').on("value", function (snapshot) {
console.log(snapshot.val()) // HERE IS WHERE IT SHOULD BE ORDERED
qProfile.resolve(snapshot.val());
}, function (errorObject) {
qProfile.reject(errorObject);
});
return qProfile.promise;
};
Run Code Online (Sandbox Code Playgroud)
要添加,我的用户节点如下所示:
users
/$username
/last_update
/id
/data
/profile_image
/display_name
Run Code Online (Sandbox Code Playgroud)
这是一个快照:
Tester: Object
github: Object
last_update: 1447732462170
userId: "github:12345"
Run Code Online (Sandbox Code Playgroud) 上面是我的firebase数据库的屏幕截图.我正在尝试使用负时间戳按降序对firebase数据进行排序.我正在使用以下命令:
const feedRef = database.ref('ducks')
feedRef.orderByChild('timestamp').on('value', (snapshot, error) => {
const feed = snapshot.val()})
Run Code Online (Sandbox Code Playgroud)
我继续按照与数据库相同的顺序获取Feed,而不是按照我想要的降序排列.我认为它不起作用,因为ducks端点没有子名称时间戳我将如何实现这一目标?推送生成的密钥是否有时间戳数据?
我已经阅读了有关此问题的所有问题,但我仍然没有找到答案.所以不要将其标记为重复.
我正在使用AngularFire和Angular 2以及Typescript.我正在使用FirebaseListObservable从端点中提取24条最新记录的列表.这是我的代码:
import { Component } from '@angular/core';
import { AngularFire, FirebaseListObservable } from 'angularfire2';
@Component({
selector: 'story-list',
templateUrl: './story-list.component.html',
styleUrls: ['./story-list.component.scss']
})
export class StoryListComponent {
stories: FirebaseListObservable<any[]>;
constructor(af: AngularFire) {
this.stories = af.database.list('/stories', {
query: {
limitToLast: 24
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
这将按预期返回24个最新故事的列表,但是当我在页面上呈现它们时:
<p *ngFor="let story of stories | async">{{ story.title }}</p>
Run Code Online (Sandbox Code Playgroud)
它显示了最古老的故事,最新的故事在底部.我明白为什么会这样,而且我并没有声称这是一个问题,但我该如何扭转呢?我希望能够在查询中反转这一点,但如果这不可能,我会开放以某种方式在渲染中反转它.
无论您的答案是什么,请不要只链接到文档.没有AngularFire的文档可以完全解释这一点.我读过每一个字.请提供真实的工作代码.
但是,我绝对不会接受的一个解决方案是在创建时在记录中存储负数日期,然后根据该日期进行排序.这是我听过的最糟糕的解决方案,真正的数据库系统允许您在查询中执行此操作.所以请不要建议.
如果您有任何想法,我将不胜感激.我不想再使用其他产品,因为我喜欢Firebase.
javascript angularjs firebase angularfire firebase-realtime-database
var playersRef = firebase.database().ref("team_mapping/");
playersRef.orderByChild("score").limitToFirst(7).on("child_added", function(data) {
}
Run Code Online (Sandbox Code Playgroud)
使用此查询,我可以按升序对其进行排序。但是,我想按降序排序。任何机构都可以建议我以某种方式做到这一点。任何帮助将不胜感激。
提前致谢!!