在React Native中如何在Firebase Real Time实时数据库中生成子节点

哈什米

我正在React Native Firebase数据库中上传一些数据。我必须在其中添加带有单独节点的数据数组。我不明白如何执行它。这是我的代码...

firebase.database().ref('Shops/' + firebase.auth().currentUser.uid).push({
  UserName: this.state.Uname,
  name:this.state.Name,
  tagline:this.state.TagLine,
  description:this.state.Description,
  number:this.state.number,
  image_url_logo:this.state.base64_datalogo,
  image_url_banner:this.state.base64_data,

}) 

我想在其中生成另一个名为的节点products它是一个数组。只想知道如何在此结构中使用子节点生成数组,请进行指导。

在此处输入图片说明

这是我真正想要的。

samthecodingman

对于此用例,这就像将数组嵌套在您推送到服务器的数据下一样简单。

firebase.database().ref('Shops/' + firebase.auth().currentUser.uid).push({
  UserName: this.state.Uname,
  name:this.state.Name,
  tagline:this.state.TagLine,
  description:this.state.Description,
  number:this.state.number,
  image_url_logo:this.state.base64_datalogo,
  image_url_banner:this.state.base64_data,
  products: [
    {
      name: 'rubber duck',
      price: '5',
      ...
    },
    {
      name: 'kitchen sink',
      price: '200',
      ...
    }
  ]
})

但是,当您希望在页面上列出所有商店时,就会出现问题。如果要获取每个商店的名称,标语,描述,联系电话和图像,则即使不使用商店,也必须下载商店出售的每个商品的数据。

而是考虑将商店的产品拆分到单独的数据库位置。

let shopRef = firebase.database().ref('Shops/' + firebase.auth().currentUser.uid).push();
let shopId = shopRef.key; // unique shop ID

let setShopDataPromise = shopRef.set({
  UserName: this.state.Uname,
  name:this.state.Name,
  tagline:this.state.TagLine,
  description:this.state.Description,
  number:this.state.number,
  image_url_logo:this.state.base64_datalogo,
  image_url_banner:this.state.base64_data,
});

let setShopItemsPromise = firebase.database().ref('ShopItems/' + firebase.auth().currentUser.uid + '/' + shopId).set([
    {
      name: 'rubber duck',
      price: '5',
      ...
    },
    {
      name: 'kitchen sink',
      price: '200',
      ...
    }
]);

Promise.all([setShopDataPromise, setShopItemsPromise])
  .then(() => {
    console.log('Shop uploaded successfully');
  })
  .catch((err) => {
    // something went wrong
    console.error(err);
  });

现在,由于在实时数据库最好避免使用数组,因此我将products通过以下函数运行数组,然后再将其传递给设置,以赋予每个项目其自己唯一的产品ID产品仍将以相同顺序上载,但将使管理更加容易。

function arrayToKeyPairs(arr) {
  let rootRef = firebase.database().ref();
  let newKey = () => rootRef.push().key;
  return arr.reduce((acc, v) => {
    acc[newKey()] = v
    return acc;
  }, {});
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

来自分类Dev

React + Firebase:如何添加项目以将数据列表到firebase实时数据库中

来自分类Dev

如何使用 Firebase 实时数据库和 React Native 上传图像/文件?

来自分类Dev

如何在React Native中显示来自Firebase Firestore的数据

来自分类Dev

将Firebase实时数据库与React Native App集成

来自分类Dev

React Native - Firebase 实时数据库和存储数组

来自分类Dev

如何在React Native中访问从Firebase数据库检索的完整阵列?

来自分类Dev

使用IOS-Swift读取Firebase实时数据库子节点

来自分类Dev

如何在 Firebase 实时数据库中获取子名称

来自分类Dev

在SwiftUI中读取带有子节点的Firebase实时数据库父节点时出现问题

来自分类Dev

Firebase 3.3实时数据库使用React Native 0.32停留在“进行连接尝试”上

来自分类Dev

如何在firebase实时数据库android中的唯一键下获取特定节点

来自分类Dev

从 Cloud Functions 实时数据库中的子引用获取父节点的原始值“val()”数据

来自分类Dev

如何从 Firebase 实时数据库 Java 中的子节点检索数组数据?(Firebase 回收器适配器)

来自分类Dev

如何在 Firebase 实时数据库中保存生成的唯一 ID

来自分类Dev

在删除Firebase实时数据库阵列中的节点后自动更改节点号

来自分类Dev

如何在不知道firebase实时数据库中的父元素的情况下访问子元素?

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

如何从Firebase实时数据库中的.set()获取自动生成的ID?

来自分类Dev

如何消除实时数据库Firebase抖动中的自动生成的密钥

来自分类Dev

如何检查 Firebase 实时数据库中是否存在子子项?

来自分类Dev

如何在firebase auth和firebase-实时数据库中获得相同的ID?

来自分类Dev

如何在flutter中从Firebase实时数据库中获取数据?

来自分类Dev

如何从Firebase实时数据库中删除?

来自分类Dev

如何更新Firebase实时数据库中的位置?

来自分类Dev

Firebase实时数据库:如何获取父节点的值

来自分类Dev

如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

来自分类Dev

Firebase实时数据库:如何侦听节点项的特定子集?

来自分类Dev

在Flutter应用程序中从Firebase实时数据库事件获取父节点

Related 相关文章

  1. 1

    我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

  2. 2

    React + Firebase:如何添加项目以将数据列表到firebase实时数据库中

  3. 3

    如何使用 Firebase 实时数据库和 React Native 上传图像/文件?

  4. 4

    如何在React Native中显示来自Firebase Firestore的数据

  5. 5

    将Firebase实时数据库与React Native App集成

  6. 6

    React Native - Firebase 实时数据库和存储数组

  7. 7

    如何在React Native中访问从Firebase数据库检索的完整阵列?

  8. 8

    使用IOS-Swift读取Firebase实时数据库子节点

  9. 9

    如何在 Firebase 实时数据库中获取子名称

  10. 10

    在SwiftUI中读取带有子节点的Firebase实时数据库父节点时出现问题

  11. 11

    Firebase 3.3实时数据库使用React Native 0.32停留在“进行连接尝试”上

  12. 12

    如何在firebase实时数据库android中的唯一键下获取特定节点

  13. 13

    从 Cloud Functions 实时数据库中的子引用获取父节点的原始值“val()”数据

  14. 14

    如何从 Firebase 实时数据库 Java 中的子节点检索数组数据?(Firebase 回收器适配器)

  15. 15

    如何在 Firebase 实时数据库中保存生成的唯一 ID

  16. 16

    在删除Firebase实时数据库阵列中的节点后自动更改节点号

  17. 17

    如何在不知道firebase实时数据库中的父元素的情况下访问子元素?

  18. 18

    如何从Firebase中的实时数据库获取数据

  19. 19

    如何从Firebase实时数据库中的.set()获取自动生成的ID?

  20. 20

    如何消除实时数据库Firebase抖动中的自动生成的密钥

  21. 21

    如何检查 Firebase 实时数据库中是否存在子子项?

  22. 22

    如何在firebase auth和firebase-实时数据库中获得相同的ID?

  23. 23

    如何在flutter中从Firebase实时数据库中获取数据?

  24. 24

    如何从Firebase实时数据库中删除?

  25. 25

    如何更新Firebase实时数据库中的位置?

  26. 26

    Firebase实时数据库:如何获取父节点的值

  27. 27

    如何从Xamarin.Forms上的Firebase实时数据库获取ID节点(密钥)

  28. 28

    Firebase实时数据库:如何侦听节点项的特定子集?

  29. 29

    在Flutter应用程序中从Firebase实时数据库事件获取父节点

热门标签

归档