首页 > 解决方案 > 与 toObject 相对的 Firebase 或创建一个返回对象地图的方法

问题描述

我的 android 应用程序中有一个 pojo 类,我正在使用 firebase 来存储它们,我可以使用 toObject 从 firebase 中检索它们

DatabaseUser user = documentSnapshot.toObject(DatabaseUser.class);

但我想知道是否有将它们保存到firebase的等价物,因为目前我必须做这样的事情

        Map<String, Object> user = new HashMap<>();
        DatabaseUser userObject = params[0];
        user.put(Constants.FS_NAME, userObject.getUser_name());
        user.put(Constants.FS_STATUS, userObject.getUser_status());
        user.put(Constants.FS_NUMBER, userObject.getUser_number());
        user.put(Constants.FS_IMAGE, userObject.getUser_image());
        user.put(Constants.FS_BLOCKED, userObject.getBlocked());
        user.put(Constants.FS_SMALL_IMAGE, userObject.getUser_image());
        user.put(Constants.FS_RECENT_MSG, 
        userObject.getUser_recent_message());
        user.put(Constants.FS_MSG_TIME_STAMP, 
        userObject.getMsg_time_stamp());
        user.put(Constants.FS_TIME_STAMP, userObject.getUser_time_stamp());
        user.put(Constants.FS_ID,userObject.getUser_id());

我在文档中找不到任何帮助,而且我不是 Java 专家,我尝试在我的 pojo 类中创建一个方法,该方法返回这样的地图:

在我的 DatabaseUser 类中

 public Map toMap(DatabaseUser userObject){
    Map<String, Object> user = new HashMap<>();
    user.put(Constants.FS_NAME, userObject.getUser_name());
    user.put(Constants.FS_STATUS, userObject.getUser_status());
    user.put(Constants.FS_NUMBER, userObject.getUser_number());
    user.put(Constants.FS_IMAGE, userObject.getUser_image());
    user.put(Constants.FS_BLOCKED, userObject.getBlocked());
    user.put(Constants.FS_SMALL_IMAGE, userObject.getUser_image());
    user.put(Constants.FS_RECENT_MSG, userObject.getUser_recent_message());
    user.put(Constants.FS_MSG_TIME_STAMP, userObject.getMsg_time_stamp());
    user.put(Constants.FS_TIME_STAMP, userObject.getUser_time_stamp());
    user.put(Constants.FS_ID,userObject.getUser_id());
    return user;
}

但它要求我每次都创建一个新的数据库用户来调用 toMap 有人可以告诉我我做错了什么或提出更好的方法

标签: javaandroidfirebasehashmappojo

解决方案


推荐阅读