Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
OrderByChild()在Android客户端中不工作_Android_Firebase_Firebase Realtime Database_Firebase Security - Fatal编程技术网

OrderByChild()在Android客户端中不工作

OrderByChild()在Android客户端中不工作,android,firebase,firebase-realtime-database,firebase-security,Android,Firebase,Firebase Realtime Database,Firebase Security,在我的android应用程序中,我使用以下代码 FirebaseDatabase database = FirebaseDatabase.getInstance(); ref = database.getReference().child(Keys.CONTACTIFY_CONTACTS).child(sharedPrefs.getString(SharedPreferenceValues.CURRENT_USER_UID, "")).child(Keys.SHARED_CONTAC

在我的android应用程序中,我使用以下代码

 FirebaseDatabase database = FirebaseDatabase.getInstance();

    ref = database.getReference().child(Keys.CONTACTIFY_CONTACTS).child(sharedPrefs.getString(SharedPreferenceValues.CURRENT_USER_UID, "")).child(Keys.SHARED_CONTACTS);
    refer = ref.orderByChild(Keys.TIME);
 refer.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                ArrayList<HashMap<String, Object>> sharedList = new ArrayList<HashMap<String, Object>>();
                if (dataSnapshot.getValue() != null) {
                    Object[] rootData = ((HashMap<String, Object>) dataSnapshot.getValue()).values().toArray();
                    for (Object singleElement :
                            rootData) {
                        HashMap<String, Object> eachElement = (HashMap<String, Object>) singleElement;
                        sharedList.add(eachElement);
                    }
                    recyclerView.setAdapter(new SharedItemsRecyclerViewAdapter(sharedList, mListener, getActivity()));
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

问题是,我正在以默认排序方式(即sortbyKey())从快照获取hasmap。但是我希望得到基于节点数据中时间键值的结果。

当您对Firebase数据库执行查询时,它返回的
DataSnapshot
包含键、值和结果顺序

但随后将快照转换为
映射

((HashMap<String, Object>) dataSnapshot.getValue())

我们最近在我们的。

中添加了一个这样的示例,但是List data=new ArrayList();有点让人困惑,但其余的都没问题;-)。把默认的顺序颠倒过来,比如升序或降序,怎么样?我就是这么做的,但我希望会有一些firebase查询,谢谢
((HashMap<String, Object>) dataSnapshot.getValue())
public void onDataChange(DataSnapshot dataSnapshot) {
    List<String, Object> data = new ArrayList<String,Object>();
    for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
        data.add(childSnapshot.getKey(), childSnapshot.getValue());
    }
}