【发布时间】:2019-07-24 14:10:01
【问题描述】:
我的 Android 应用程序中有一个实用程序类,用于保存在整个应用程序中重复使用的功能。其中一个函数返回当前登录用户信息的地图。当我从 Activity 调用此函数时,我没有收到任何错误,但 Map 似乎是空的。
下面是实用类方法
public static Map<String,String> getUserInfo(String uniqueID)
{
final Map<String, String> currUserInfo = new HashMap<>();
final DatabaseReference database =
FirebaseDatabase.getInstance().getReference().child("Users").child(uniqueID);
database.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
User user = dataSnapshot.getValue(User.class);
currUserInfo.put("user_firstname",user.getFirstName());
currUserInfo.put("user_secondname", user.getSecondName());
currUserInfo.put("user_username", user.getUsername());
currUserInfo.put("user_profile", user.getProfilePicURL());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
Log.d(TAG, "onCancelled: " + databaseError.getMessage());
}
});
return currUserInfo;
}
下面是我如何调用函数
userInfo = Utilities.getUserInfo(userID);
“userInfo”在活动顶部声明为this
private Map<String, String> userInfo;
【问题讨论】:
标签: java android firebase firebase-realtime-database hashmap