如何将具有文档ID的自定义对象设置为扑扑中的Firestore中的集合?

时间:2020-06-26 14:01:26

标签: flutter google-cloud-firestore custom-object

我定义了一个带有一些字符串变量的飞镖类A和另一个类B的对象列表。 我没有在cloud_firestore模块中找到任何方法函数来将A类的自定义对象设置为集合的文档,即使Firestore支持自定义对象也是如此。我是否需要将A类的所有成员(字符串,列表等)转换为JSON格式或任何其他可用的解决方案?

2 个答案:

答案 0 :(得分:0)

您不能插入/更新普通Dart模型。首先,您需要将您的对象转换为JSON数据。为此,您可以检查this的答案。 另外,您可以查看this答案。

答案 1 :(得分:0)

如果创建相关的自定义类的另一个集合很不方便,唯一的选择是自己构建相关的类实例。

import Player from // player module

class GameState {
  constructor(data) {
    this.players = data.players.map(p => new Player(p))
    // ...
  }

  // flatten GameState into a generic JS map
  // build one of these on Player also
  asFBData() {
    const playerFBData = this.players.map(p => p.asFBData())
    return { playerFBData, ...other_game_state_here }
  }
}

const gameStateConverter = {
  toFirestore: gameState => gameState.asFBData(),
  fromFirestore: (snapshot, options) => new GameState(snapshot.data(options))
}