不支持嵌套数组

Pro*_*mit 13 firebase google-cloud-firestore

新的Firebase数据库Firestore说

函数DocumentReference.set()使用无效数据调用.不支持嵌套数组.

尝试保存以下对象时:

{
  "desc" : "Blala",
  "geojson" : {
    "features" : [ {
      "geometry" : {
        "coordinates" : [ 8.177433013916017, 48.27753810094064 ],
        "type" : "Point"
      },
      "type" : "Feature"
    } ],
    "type" : "FeatureCollection"
  },
  "location" : {
    "lat" : 48.27753810094064,
    "lng" : 8.177433013916017
  },
  "name" : "Wald und Wiesen",
  "owner" : "8a2QQeTG2zRawZJA3tr1oyOAOSF3",
  "prices" : {
    "game" : {
      "Damwild" : 10,
      "Raubwild" : 300,
      "Rehwild" : 250,
      "Schwarzwild" : 40
    },
    "perDay" : 35
  },
  "rules" : "Keine Regeln!",
  "wild" : {
    "desc" : "kein Wild",
    "tags" : [ "Damwild", "Rehwild", "Schwarzwild", "Raubwild" ]
  }
}
Run Code Online (Sandbox Code Playgroud)

什么是firestore抱怨的嵌套数组?我在文档中找不到它.

如果它是GeoJSON对象 - 我将如何保存它?

Gil*_*ert 9

更新:这已在Firebase JS SDK 4.6.0中修复.直接嵌套的数组仍然不受支持,但您现在可以拥有一个包含包含数组等对象的数组.

这是当前发布的SDK中的一个错误.

后端具有仅支持不直接嵌套数组的限制.

在您的情况下,您有包含包含数组的对象的数组,并且客户端中的验证逻辑在不应该的情况下不允许它.

没有公共错误跟踪这个,但我会在我们修复时回发.

  • @MichaelLehenbauer它仍然无法在firebase控制台上的firestore UI中运行. (4认同)
  • 在 iOS 上仍然对我不起作用。我得到“FIRInvalidArgumentException”,原因:“不支持嵌套数组”。 (2认同)

小智 5

您可以调整一个序列化函数,该函数将具有对象类型的数组转换为映射。键可以是数字以保持顺序。

{ 1: Object, 2: Object2 ... }

在反序列化上,您可以Object.values(data);将其放回数组以供客户端使用。