【问题标题】:Temporarily store array of data in Firestore在 Firestore 中临时存储数据数组
【发布时间】:2018-12-15 17:48:36
【问题描述】:

这个问题与here 上的讨论有关。

我在一个数组中有一组 url,我需要使用 Firebase 云函数对其进行解析。我宁愿将整个数组存储在 Firestore 中,将集合的 ID 传递给函数,而不是遍历客户端上的 URL(我可能在这个数组中有数百个项目)并对函数发出单独的请求,抓取服务器上的数组,遍历它并执行一些操作,然后使用新 ID 将其保存回 Firestore 并使用该 ID 响应客户端,以便它可以消耗/销毁,或者仅使用新的变异响应数组(不确定我想使用哪一个)。

似乎没有一种“首选”的方式来使用 Firebase 存储数组,因为它通常被认为是邪恶的,但是,如果我不打算将数据保存很长时间怎么办?

【问题讨论】:

    标签: javascript arrays firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    我想通了。与其将其作为数组传递,不如将其分配给一个 obj 并将其传递给 Firestore。

    const arr = ['url1', 'url2', 'url3'];
    

    const obj = {
        arr: ['url1', 'url2', 'url3']
    }
    

    【讨论】:

    • 请注意,下次您可以将列表发送到 firesore(如果这会让您更轻松)
    【解决方案2】:

    我建议将数组数据写成这样的 Java 列表:

    myDoc.put("urls", Arrays.asList("url1", "url2", "url2"));
    

    这将导致

    urls
       0: "url1"
       1: "url2"
       2: "url3"
    

    【讨论】:

    • 嗯,感谢您留下答案!你有什么理由可以分享为什么这比仅仅传递一个对象更有效?我想我得到的输出和你的方法一样。
    • @katyusha 我不确定它是否工作得更好。我认为包含将数组数据写入列表的实际代码会很好。您的回答很好,Firebase 中的结果可能相同。可能应该测试一下。
    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 2013-07-28
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多