【发布时间】:2019-07-05 17:08:33
【问题描述】:
我正在尝试在Firebase 中创建一个具有 4 个字段的新用户
1.用户名
2.posts
3.追随者
4.关注 --> ArrayList
下面是ArrayList,但最后一个字段根本没有在 Firebase 中创建。
创建新用户的代码:
UserBean userBean = new UserBean(mUsername.toLowerCase(),0,0,new ArrayList<String>());
mUserDatabase.push().setValue(userBean);
我的用户Bean:
String username;
int followers,post;
ArrayList<String> following;
public UserBean() {}
public UserBean(String username, int followers, int post, ArrayList<String> following) {
this.username = username;
this.followers = followers;
this.post = post;
this.following = following;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getFollowers() {
return followers;
}
public void setFollowers(int followers) {
this.followers = followers;
}
public int getPost() {
return post;
}
public void setPost(int post) {
this.post = post;
}
public ArrayList<String> getFollowing() {
return following;
}
public void setFollowing(ArrayList<String> following) {
this.following = following;
}
我也尝试将数据添加到ArrayList,但数据没有添加到Firebase。这是我尝试过的:
Query currentUserQuery = mUsersReference.orderByChild("username").equalTo(mFirebaseAuth.getCurrentUser().getDisplayName().toLowerCase());
Log.d(MainActivity.TAG,mFirebaseAuth.getCurrentUser().getDisplayName().toLowerCase());
currentUserQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
ArrayList<String> following = (ArrayList<String>) data.child("following").getValue();
following.add(username);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
ArrayList<String> following = (ArrayList<String>) data.child("following").getValue(); 这行代码抛出NullPointerException 但它应该在列表中添加数据,因为你们说列表只是没有任何数据就不会显示。那为什么会抛出NullPointerException?
【问题讨论】:
-
在将数据添加到数据库之前,您是否尝试将一些数据添加到 ArrayList?
标签: java android firebase arraylist firebase-realtime-database