Integromat 自动化问题 - 无法在 Google Firestore 中存储数组

Integromat automation problem - can't store an array in Google Firestore

概述 - 我正在尝试使用 Integromat 将一些数据同步到 google firestore。但是我似乎无法找到将数组保存为特定字段输出的正确方法。看起来这应该很容易,但到目前为止我尝试的一切都失败了。

例如,使用最简单的形式我有一个像这样的输入字符串

输入JSON: { "Brand": "Ford", "widgets": [0,1,2] }

我基本上只是想以相同的结构将其保存到 firebase 中,但我似乎无法正确配置 'Update Firestore Document' 模块。我能做的最接近的是将它保存为一个字符串,所以它在 firebase 中看起来像这样:

输出 Firestore:{ "Brand": "Ford", "widgets": "0,1,2" }

下面我附上了 integromat 设置的图像,展示了我如何尝试将输出值连接到 firestore 模块中。当我尝试直接传递数组时,我收到了错误消息。 “参数中预期的对象数组 'Value'”

我已经审查了您的集成,需要解决的一件事是您通过 Integromat 在 Google Cloud FireStore 中传递值数组的方式。查看 API 时,FireStore 的预期格式如下所示,

{
    "fields": {
        "widgets": {
            "arrayValue": {
                "values": [
                    {
                        "integerValue": 0
                    },
                    {
                        "integerValue": 1
                    },
                    {
                        "integerValue": 2
                    }
                ]
            }
        },
        "brand": {
            "stringValue": "Ford"
        }
    }
}

但是,由于该应用程序是在 Integromat 中开发的,所以当您使用 Map 而不是在 Firestore Array 中设置每个项目时,几乎没有变化。在审查之后,Integromat 期望具有以下字段的对象作为您需要创建和传递的数组,而不是像您在当前实现中所做的那样使用 widgets[]

[
  value : 0,
  valueType : "integerValue"
]

为了实现这一点,我创建了以下场景(不确定操作效果如何,但我可以使用),

使用的数据结构如下,您可以通过生成器使用它并用于聚合器和解析器 JSON 模块,

[{
    "value": 0,
    "valueType": "integerValue"
}, {
    "value": 1,
    "valueType": "integerValue"
}, {
    "value": 2,
    "valueType": "integerValue"
}]

倒数第二步中的数组聚合器将聚合值和值类型,并将在 Google FireStore 中用作,