Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在客户端对Firebase结果进行排序_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 在客户端对Firebase结果进行排序

Javascript 在客户端对Firebase结果进行排序,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在使用Firebase for web,对一些数据进行排序时遇到问题 我知道我不能使用2 orderBy,所以我制作了一个orderByChild并返回了我需要的数据。现在我需要按日期订购 尝试了很多东西,但都没有效果,我尝试了: 首先,我将检索到的数据推送到一个数组中,然后 将object.values与.sort一起使用,未成功 已使用lodash和u.orderBy,空数组 更改了以上两个的语法,没有成功 已订购另一个未从Firebase检索并已工作的数据(lodash orderB

我正在使用Firebase for web,对一些数据进行排序时遇到问题

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

尝试了很多东西,但都没有效果,我尝试了:

首先,我将检索到的数据推送到一个数组中,然后

  • 将object.values与.sort一起使用,未成功
  • 已使用lodash和u.orderBy,空数组
  • 更改了以上两个的语法,没有成功
  • 已订购另一个未从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();
var ref2=firebase.database();
参考2.orderByChild('animalUid').equalTo(codigoAnimal).on(“添加了child_”),函数(快照){
var dadosFiltrados=snapshot.val();
var keys=snapshot.key;
var appendAulas=$(“#atendimentosTimeline”);
var tdLine=“”;
tdLine+=''+dadosFiltrados.hora+'-'+dadosFiltrados.end+'';
var ref3=firebase.database();
参考3.orderByKey().equalTo(dadosFiltrados.idAtendimento).on(“添加的子对象”,函数(快照){
//firebase.database().ref(sessionToken+'/users/atendimento/'+dadosFiltrados.idAtendimento).once(“值”,函数(信息){
var keyAtendimento=snapshot.key;
var dadosAtendimento=snapshot.val();
我需要在
dadosFiltrados
中对数据进行排序解决方案: OrderByChild按Firebase()排序

因此,我导出了数据库(.json文件),使用非字典形式的键编辑了条目(之前检查检索到的数据的键),保存并导入了。

“寻求调试帮助的问题”(“此代码为什么不起作用?”)必须包括所需的行为、特定的问题或错误,以及在问题本身中重现问题所需的最短代码。没有明确问题说明的问题对其他读者没有用处。请参阅:添加了更多信息,很抱歉我是新加入的。感谢您的更新。我仍然很难理解代码的意图。如果您只是询问如何对添加了
子项的子项进行排序,请仅在您的问题中包含与此相关的信息和代码。第一个简要说明:
ref3.orderByKey().equalTo(dadosFiltrados.idAtendimento).on(“添加的孩子”
只是执行参考3.child(dadosFiltrados.idAtendimento.)on(“值”的一种低效方法
。我也认为您想在那里使用
一次,因为我感觉您只需要一次值。我只需要对参考2中添加的child_上的数据进行排序,下面的代码是为了检索另一个信息,很抱歉也添加了它。为什么不完善?您是对的,我需要一次。使用此语法对性能有好处吗?ThanksI猜想我发现了问题:,“接下来是指定子键的值为true的子项。如果多个子项的值为true,则按键按字典顺序对它们进行排序。”