Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
Java 如何更改.push()在Android上的Firebase Realtimedatabase中添加数据的索引_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 如何更改.push()在Android上的Firebase Realtimedatabase中添加数据的索引

Java 如何更改.push()在Android上的Firebase Realtimedatabase中添加数据的索引,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,使用firebase.push()在指定引用的末尾使用随机键创建一个新的子项,然后我们可以向其中添加数据。但是我想在它之间添加数据。例如: 如果这是初始情况: { "-L7kYVU5-CxkqBCmJLO-" : { "articleCategory" : "tech", "articleText" : "Hi , today lets talk about android....", "articleTitle" : "new Android version

使用firebase.push()在指定引用的末尾使用随机键创建一个新的子项,然后我们可以向其中添加数据。但是我想在它之间添加数据。例如:

如果这是初始情况:

{ 
    "-L7kYVU5-CxkqBCmJLO-" : {
    "articleCategory" : "tech",
    "articleText" : "Hi , today lets talk about android....",
    "articleTitle" : "new Android version announced",
    "articleUrl" : "www.somewebsite.com/android_article",
    "imgUrl" : "www.image.com"
  },
  "-L7kZozxhubLtJaOG1cy" : {
    "articleCategory" : "tech",
    "articleText" : "Apple Homepod - is the new product by Apple.....",
    "articleTitle" : "Apple HomePod",
    "articleUrl" : "www.somewebsite.com/apple_homepod",
    "imgUrl" : "www.someotherimage.com"
  }
}
我想要的-

 { 
    "-L7kYVU5-CxkqBCmJLO-" : {
    "articleCategory" : "tech",
    "articleText" : "Hi , today lets talk about android....",
    "articleTitle" : "new Android version announced",
    "articleUrl" : "www.somewebsite.com/android_article",
    "imgUrl" : "www.image.com"
  },
{ 
    "-L7kYVU5-CxkqBOKAtO-" : {
    "articleCategory" : "tech",
    "articleText" : "The new iphone....",
    "articleTitle" : "Iphone X review",
    "articleUrl" : "www.somewebsite.com/iphoneX_article",
    "imgUrl" : "www.otherimage.com"
  },
  "-L7kZozxhubLtJaOG1cy" : {
    "articleCategory" : "tech",
    "articleText" : "Apple Homepod - is the new product by Apple.....",
    "articleTitle" : "Apple HomePod",
    "articleUrl" : "www.somewebsite.com/apple_homepod",
    "imgUrl" : "www.someotherimage.com"
  }
}
因此,基本上我想在两个现有子项之间添加一个子项,在第一个子项之后添加一个randomkey(或任意键),而不是在列表的末尾,通常使用.push()实现

使用orderByChild()方法可以改变接收数据的顺序,也可以按特定的升序或降序(我可能错了,但这是我从文档中了解到的)


我不知道这是否可能,但如果可能,请帮助我,或者如果没有,是否有任何解决方法可以做到这一点?

推送ID是随机的,但也取决于它们生成的时间。它们总是按时间顺序排序。如果需要按其他条件对记录进行排序,请使用子值。

推送ID是随机的,但也基于生成它们的时间。它们总是按时间顺序排序。如果您需要按照其他标准对记录进行排序,请使用子值。

谢谢您的回答,但我并不想进行排序,我只想将数据添加到特定的索引中,例如2(1之后),因此无论何时加载数据,它都会保持通常的顺序,但也会将新添加的子项放在所需的位置。是否可能?如果是,可以手动添加时间戳。如何?使用推送ID时没有索引。子键总是按字母顺序排列,这对于推送ID也是按时间顺序排列的。那么有没有办法使用代码在两个推送ID之间插入一个新的子键?没有,请再次阅读我的答案,以了解为什么每个推送ID都会添加到末尾(它们基于时间和按时间顺序排列)。好的,谢谢,是否有其他可能的方法来达到预期的结果?U提到了关于子值,我如何准确地使用它们来获取我需要的内容谢谢你的回答,但我并不想进行排序,我只想将数据添加到一个特定的索引中,例如2(在1之后),所以无论何时加载数据,它都会保持通常的顺序,但也会将新添加的子项放在所需的位置。是否可能?如果是,可以手动添加时间戳。如何?使用推送ID时没有索引。子键总是按字母顺序排列,这对于推送ID也是按时间顺序排列的。那么有没有办法使用代码在两个推送ID之间插入一个新的子键?没有,请再次阅读我的答案,以了解为什么每个推送ID都会添加到末尾(它们基于时间和按时间顺序排列)。好的,谢谢,是否有其他可能的方法来达到预期的结果?你提到了关于子值,我如何确切地使用它们来获取我需要的内容请用实际的JSON替换你的伪数据结构(作为文本,请不要截图)。你可以通过点击你的页面中的“导出JSON”链接来实现这一点。完成后,我希望它现在清楚了。请用你拥有的实际JSON替换你的伪数据结构(作为文本,请不要截图)。您可以通过单击.done中的“Export JSON”链接来实现这一点,我希望它现在就清楚了