排序Firebase结果客户端

时间:2019-01-18 02:56:50

标签: javascript firebase firebase-realtime-database

我正在将Firebase用于Web,但在排序某些数据时遇到问题。

我知道我不能使用2 orderBy,所以我做了一个orderByChild并返回了我需要的数据。现在我需要按日期排序。

尝试了很多东西,但没有任何效果,我尝试过:

首先,我将检索到的数据推送到数组中

  • 使用了带有.sort的object.values,没有成功
  • 用于_.orderBy的lodash,空数组
  • 更改了以上两种语法,没有成功
  • 订购了另一个未从Firebase检索并工作的数据(lodash orderBy示例)

有什么建议吗? 所需的行为:

预期:

我正在使用的代码:

var ref2 = firebase.database().ref(sessionToken+'/users/agendas/');
ref2.orderByChild('animalUid').equalTo(codigoAnimal).on("child_added", function(snapshot) {
  var dadosFiltrados = snapshot.val();
  var keys = snapshot.key;

  var appendAulas = $('#atendimentosTimeline');
  var tdLine = "";
  tdLine += '<div class="timeline__box"><div class="timeline__date"><span class="timeline__day"></span><span class="timeline__month">'+dadosFiltrados.hora+' - '+dadosFiltrados.end+'</span></div>';

  var ref3 = firebase.database().ref(sessionToken+'/users/atendimento/');
  ref3.orderByKey().equalTo(dadosFiltrados.idAtendimento).on("child_added", function(snapshot) {
  // firebase.database().ref(sessionToken+'/users/atendimento/'+dadosFiltrados.idAtendimento).once("value", function(info){
  var keyAtendimento = snapshot.key;
  var dadosAtendimento = snapshot.val();

我需要对dadosFiltrados中的数据进行排序。

1 个答案:

答案 0 :(得分:1)

解决方案:
OrderByChild按Firebase(https://www.firebase.com/docs/web/guide/retrieving-data.html#section-ordered-data)排序
因此,我导出了数据库(.json文件),而不是按字典顺序使用键来编辑条目(请先检查检索到的数据的键),然后保存并导入。