在我的应用程序中,我需要从数据库中的一个节点检索一个值,并使用此值传递给我代码中其他位置的另一个方法。
是否可以从firebase中的数据快照读取数据并返回此值以便在数据快照之外使用?
例如,要从以下方法返回phoneNum或groupId变量以便在另一种方法中使用:
public void getUserPhoneNum(String uId){
usersDatabase.child(uId).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists() || dataSnapshot.getValue() != null) {
User mUser = dataSnapshot.getValue(User.class);
String userPhone = mUser.getPhoneNum();
Group mGroup = dataSnapshot.child("groups").getValue(Group.class);
String groupId = mGroup.getGroupId();
groupsDatabase.child(groupId).child("members").child(userPhone).child("playing").setValue()
if (userPhone != null) {
}
}
else {
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
答案 0 :(得分:0)
这是不可能的,因为当您使用addListenerForSingleValueEvent
时,您正在定义一个实现'onDataChange and
onCancelled`的类。
您可以使用界面让班级现在知道何时提取电话号码。