当前位置: 首页 > 知识库问答 >
问题:

将Java映射返回到另一个类[重复]

伯向晨
2023-03-14
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”在活动的顶部声明为

   private Map<String, String> userInfo;

共有1个答案

魏安然
2023-03-14

我不是Android开发人员,但是通过查看您的代码,我注意到您在DatabaseReference实例中附加了一个监听器。在ValueEventListener中,您将从Firebase提取的值放入

可能发生的情况是,这个监听器不是立即调用的,而是以异步方式调用的。这意味着您的GetUserInfo方法可以独立于OnDataChange方法的执行而返回。

这可能导致您的映射 返回后为空。

 类似资料:
  • 我是Java中Spring框架的新手。并且有一些问题… 我的应用程序使用Spring、Spring seq的安全性、Hibernate框架。 我正在编写一些简单的应用程序。 我有一个页面,可以通过Hibernate将用户添加到db。 用户类: 角色类: 保存在控制器中: 在UserDAO中保存 我在页面上有一个选择块,我可以在其中选择用户角色作为字符串。 所以在保存用户时,我有 所以据我所知,我应

  • 问题内容: 我正在寻找有关如何在Python中将一个范围值转换为另一范围值的想法。我正在从事硬件项目,正在从可返回一定范围值的传感器读取数据,然后使用该数据来驱动需要不同范围值的执行器。 例如,假设传感器返回的值在1到512的范围内,并且执行器由5到10的值驱动。我想要一个函数,我可以传递一个值和两个范围并取回该值映射到第二个范围。如果这样的函数被命名,则可以这样使用: 在此示例中,我希望输出为,

  • 问题内容: 我想使用AsyncTask从服务器获取Ftp文件夹列表,并将文件夹名称ArrayList返回到主类并更新微调适配器。 在主班我有带适配器的微调器 在AsyncTask中: 那么我应该如何用主类中的ArrayList替换AsyncTask中的arraylist并动态更新Spinner Updater? 问题答案: 您已经将ArrayList 设为 static ,也将其设为public。

  • 问题内容: 我需要将两个表映射到一个类,但很难弄清楚。一个表是ROOMS,另一个表是TRAINERS。 ROOMS表: 培训人员表: 表应当加入了,和。 ROOMS表的主键是:。TRAINERS表的主键是:。 我需要通过查询这个数据,,,,和。 在SQL中,可能类似于: 我正在项目中其他地方使用ROOMS表,它已经映射为独立对象。是否有一种方法可以将其用作TRAINERS对象的子对象,或者将这两个

  • 我最近开始使用MapStruct,并有这个疑问。因此,可以将映射从一个方法继承到另一个方法,该方法用于映射前一个方法输出的子类。 对于例如-如果我有一个Car类,它需要映射成两个类FourWheeler和DetailedFourWheeler(扩展了FourWheeler类),我可以使用为将Car转换成FourWheeler而定义的映射到将Car转换成DetailedFourWheeler的方法中

  • 下午好: 我最近创建了一个类“X”,它包含一个单一属性“network”,定义为一个映射,使用字符串作为键,另一个映射作为值(double map)。对于此类,将使用“hashmap”实现。 该类大致如下所示: 但是,当我执行函数中包含的network.put指令时,编译器会自动检测到一个错误:“表达式预期”。如果可能,我想知道在向映射中添加新的键值元素时是否使用了错误的语法,或者是否是映射的初始