【问题标题】:How to Map Dynamic Map Object from Firestore into Flutter and from Flutter to Firestore?如何将动态地图对象从 Firestore 映射到 Flutter 以及从 Flutter 到 Firestore?
【发布时间】:2021-11-02 05:15:43
【问题描述】:

我想将 Firestore 上的动态地图对象转换为 Flutter。下面是一个例子:

被屏蔽用户的地图可以更改。有时,它可能包含 3 个被阻止的用户 其他时候,它可能包含 2 个。

以下是我当前的代码:

    class UserModel {
      String userId;
      String bio;
    ///add in dynamic blockedusers mapping
    }
    
    UserModel(
          {
          this.userId,
          this.bio,
    ///add in dynamic blockedusers mapping
    }
    
    UserModel.fromJson(Map<dynamic, dynamic> map) {
        userId = map['userId'];
        bio = map['bio'];
    ///add in dynamic blockedusers mapping
    }
    
     toJson() {
        return {
          "userId": userId,
          'bio': bio,
    ///add in dynamic blockedusers mapping
    };
    }

鉴于地图对象发生变化,有没有办法将其从 Firestore 动态映射到 Flutter 或将其从 Flutter 映射到 Firestore? 提前致谢!

【问题讨论】:

  • 嗨,斯科特。您可能正在使用它,但可以肯定的是我会问。您是否使用 cloud_firestore 和 firebase_core 库作为依赖项来导入/导出 Flutter?

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

有几种方法可以做到这一点,最简单的方法是将其作为地图存储在 UserModel 上。

或者在 dart 中,您可以通过它们映射创建字符串列表:List blockedUsers = blockedUsersFromDB.keys.toList()

或者,如果有更多信息,请使用静态 listfromjson 创建子模型:

class BlockedUser{
  final String id;
  BlockedUser({this.id});

  factory BlockedUser.fromMap(Map map){
    return BlockedUser(id: map['userId']);
  }

  static List<BlockedUser> listFromJson(Map<dynamic, dynamic> json){
    // adjust to your data set or to use the from map function above
    return json.keys.map((user) => BlockedUser(id: user));
  }

}

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 2021-05-25
    • 2021-09-01
    • 2022-01-05
    • 2023-02-10
    • 1970-01-01
    • 2020-04-03
    • 2018-11-05
    • 1970-01-01
    相关资源
    最近更新 更多