【发布时间】:2016-09-21 22:02:05
【问题描述】:
在我的 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) {
}
});
我的firebase数据库结构是
我的与场景相关的 Firebase 规则是
{
"rules": {
"mapper":{
".read": "auth!= null",
".write": "auth!= null"
},
"share_id_mapper":{
".read": "auth!= null",
".write": "auth!= null"
},
"contactify_contacts":{
//can read a message if authenticated
"$uid": {
"shared_contacts": {".indexOn": "time",
".write": "auth!= null",
问题是我以默认排序方式从快照中获取 hasmap,即 sortbyKey()。但我期待基于节点数据中时间键值的结果。
【问题讨论】:
标签: android firebase firebase-realtime-database firebase-security