来自datasnapshot的Firebase返回值

时间:2017-05-07 11:21:06

标签: android firebase firebase-realtime-database

在我的应用程序中,我需要从数据库中的一个节点检索一个值,并使用此值传递给我代码中其他位置的另一个方法。

是否可以从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) {

        }
    });
}

1 个答案:

答案 0 :(得分:0)

这是不可能的,因为当您使用addListenerForSingleValueEvent时,您正在定义一个实现'onDataChange and onCancelled`的类。

您可以使用界面让班级现在知道何时提取电话号码。