javascript - Firebase firestore 设置要记录的对象数组

标签 javascript reactjs firebase google-cloud-firestore react-native-firebase

我需要为要 firestore 的对象设置一个数组,但仅存储 url 的第一个索引。任何正确方向的帮助都会有所帮助,谢谢。

代码:

    const object = [
           {
            user: 'mike',
            userName: 'Mike nick',
            Urls:[
              {comment: "BBBBB", imageUrl: "url1"},
              {comment: "BBBJvuyiu", imageUrl: "url2"},
              {comment: "AAAAA", imageUrl: "url3"},
            ],
            date: 'March 20th'
           }
       ]


     firestoreRef
        .collection('users')
        .doc(userId)
        .collection('images')
        .doc('customers')
        .collection('customerExperience')
        .doc(userId)
        .set(object, { merge: true })

需要此结构,因为用户可能会继续添加更多数据:

enter image description here enter image description here 当我上传对象时,它看起来像这样。

enter image description here

最佳答案

你的 const object 实际上是一个数组,而它应该是一个对象(不是一个数组)。

以下应该有效:

  const object = {
    user: 'mike',
    userName: 'Mike nick',
    urls: [
      { comment: 'BBBBB', imageUrl: 'url1' },
      { comment: 'BBBJvuyiu', imageUrl: 'url2' },
      { comment: 'AAAAA', imageUrl: 'url3' }
    ],
    date: 'March 20th'
  }; 
<小时/>

注意与您的对象的区别:

const object = [
           {
            .....
           }
       ]
<小时/>

更新您的评论:

如果您希望完全按照更新问题中显示的方式保存它,请执行以下操作。但我不确定这是保存数据的最佳方法:事实上,您没有创建数组,而是创建了几个“map”类型的字段,其名称如下:0、1 等。

主要(负面)副作用之一是您需要预先知道所有字段名称才能读取它们,而使用“真正的”数组字段,您可以循环遍历其值。

  const object = {
    0: {
      user: 'mike1',
      userName: 'Mike nick',
      urls: [
        { comment: 'BBBBB', imageUrl: 'url1' },
        { comment: 'BBBJvuyiu', imageUrl: 'url2' },
        { comment: 'AAAAA', imageUrl: 'url3' }
      ],
      date: 'March 20th'
    },
    1: {
      user: 'mike2',
      userName: 'Mike nick',
      urls: [
        { comment: 'BBBBB', imageUrl: 'url1' },
        { comment: 'BBBJvuyiu', imageUrl: 'url2' },
        { comment: 'AAAAA', imageUrl: 'url3' }
      ],
      date: 'March 20th'
    }
  };

关于javascript - Firebase firestore 设置要记录的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58189652/

相关文章:

javascript - Node.js : SocketIO vs http request performance

javascript - Grails 应用程序 Controller 常规问题

javascript - 在create-react-app中使用react-map-gl时出错

javascript - 在 React 中保存本地状态

JavaScript JQuery 为什么按钮的 ID 没有被正确引用

javascript - 检查是否单击了两个元素,并且是否已在 Javascript 的文本框中输入了值

javascript - 子组件的下一个js父路由组件

firebase - Xamarin.Firebase.Messaging - 无法安装包

firebase - 在 firebase 中查询嵌套数据

javascript - Heroku : Error: ENOENT: no such file or directory, 打开 '/app/build/index.html' ?