# #firebase #flutter #dart #google-cloud-firestore
Вопрос:
Я хотел бы преобразовать объект динамической карты в 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?
Заранее спасибо!
Комментарии:
1. Привет, Скотт. Вы, вероятно, используете его, но, чтобы быть уверенным, я спрошу. Используете ли вы библиотеки cloud_firestore и firebase_core в качестве зависимостей для импорта и экспорта из/в flutter?
Ответ №1:
Есть несколько способов сделать это, самый простой-просто сохранить его в виде карты на UserModel
.
Или в dart вы можете отобразить через них создание списка строк: List blockedUsers = blockedUsersFromDB.keys.toList()
.
Или, если есть дополнительная информация, создайте подмодель со статическим списком из json:
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));
}
}