我试图访问名为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());
}
答案 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
节点,在其中循环并获取所有的价值观。