我想从我的数据库firbase(“电话”子代)中获取数据, 你可以看照片:
https://b.top4top.net/p_936hbh5o1.png
am使用此代码获取数据,但出现错误(java.lang.NullPointerException)。
int i=0;
DatabaseReference mDatabase;
// ...
mDatabase = FirebaseDatabase.getInstance().getReference(); // instancie
la BDD
FirebaseUser currentFirebaseUser =
FirebaseAuth.getInstance().getCurrentUser() ; // recup le yser courent
String id= currentFirebaseUser.getUid(); // recup id user actrulle
DatabaseReference usersRef =
mDatabase.child("Users").child(id).child("favoris");
usersRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int i=0;
//ArrayList Userlist = new ArrayList<favoris>();
// Result will be holded Here
for (DataSnapshot dsp : dataSnapshot.getChildren()) {
Map<String, Object> td = (HashMap<String,Object>)
dataSnapshot.getValue();
ArrayList<Object> objectArrayList = new ArrayList<Object>
(td.values());
//favoris fav = (favoris) td.values();
favoris fav = (favoris) objectArrayList.get(0);
names[i]= fav.name;
i++;
}
答案 0 :(得分:0)
创建一个POJO类,您可以在其中获得所需的元素,在这种情况下,仅是电话,您还可以获取地址和名称,只需在此处添加设置器和获取器即可。
paste0
然后遍历所有节点并获取
public class FavorisPojo {
String phone;
public FavorisPojo() {
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
我们使用字符串来获取电话,因为它已像在Firebase数据库中那样加载了电话,如果要更改它,只需在FavorisPojo类上更改变量名
您还需要像这样
usersRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int i=0;
//ArrayList Userlist = new ArrayList<favoris>();
// Result will be holded Here
for (DataSnapshot dsp : dataSnapshot.getChildren()) {
FavorisPojo favoris = dsp.getValue(FavorisPojo.class);
String phone = favoris.getPhone();
}