Firebase:访问用户Obeject内的ArrayList

时间:2018-04-01 22:24:26

标签: java android firebase firebase-realtime-database

我试图访问名为contacts的用户项下存储在arraylist中的值。我的当前代码位于下面但它抛出了一个例外,即无法将哈希映射转换为指定行上的字符串。如果有人对如何解决这个或更好的解决方案有任何提示,我将不胜感激。

mDatabase.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            GenericTypeIndicator<List<String>> t = new 
     GenericTypeIndicator<List<String>>() {};
            -> List<String> yourStringArray = dataSnapshot.getValue(t);
            Log.d("demo", yourStringArray.toString());
        }

enter image description here

1 个答案:

答案 0 :(得分:1)

访问contacts下的属性:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userid=user.getUid();

DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("users").child(userid).child("contacts");

reference.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
   for(DataSnapshot datas: dataSnapshot.getChildren()){
    String dept=datas.child("dept").getValue().toString();
      //get other values
   }
}
 @Override
public void onCancelled(DatabaseError databaseError) {
  }
});

首先获取当前用户的userid,userid位于数据库中的users节点下,然后让数据快照位于contacts节点,在其中循环并获取所有的价值观。