Tag: 订单

Firebase在不同设备/ Android版本上以不同顺序返回子节点的键

我从Firebase数据库获取数据快照以检索用户列表,但返回的键的顺序因使用的Android版本/设备而异。 出于演示目的,我缩短了方法,但基本上如下: public void getUsers(){ Firebase ref = new Firebase(“https://myFirebaseID.firebaseio.com”); final Firebase userRef = ref.child(“users”); userRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { snapshot.toString(); } }); } 它是我在快照对象(snapshot.toString())上调用toString()获得的数据,它改变了顺序。 我在4台设备上试过了。 2个运行的Lollipop(Nexus 7 5.1.1和Galaxy s4 5.01)以相同的顺序返回数据。 另外两个设备(HTC Sensation 4.0.3和Motorola G2 4.4.4)以相同的顺序返回数据(但与Lollipop设备的顺序不同)。 所使用的代码没有区别,并且在检索快照时数据库中的数据完全没有变化。 以下是4.4.4和4.0.3设备上的数据顺序: DataSnapshot { key = users, value = { 114585619420240714499={ **userIDOfCUser**=114585619420240714499, **NameOfCUser**=testName, **EmailOfCUser**=testerfireapp@gmail.com, **friends**={ […]