用于此应用的架构结构是什么?

时间:2017-10-16 01:27:08

标签: reactjs firebase schema

我想创建一个费用跟踪应用,但不知道如何制作我的架构结构。

布局:

page1 page2

架构:

module.exports = {


  expenseList: [

      {
      uid: 'some-uid1',
      createdAt: 'some-date1',
      expenseItems: [
      {
        date: 'date11',
        desc: 'desc11',
        amount: 'amount11'
      },
      {
        date: 'date11',
        desc: 'desc11',
        amount: 'amount11'
      }]
      },


      {
      uid: 'some-uid',
      createdAt: 'some-date',
      expenseItems: [
      {
        date: 'date1',
        desc: 'desc1',
        amount: 'amount1'
      },
      {
        date: 'date1',
        desc: 'desc1',
        amount: 'amount1'
      },
      {
        date: 'date1',
        desc: 'desc1',
        amount: 'amount1'
      }]
    }

  ]


};
  1. 如何更改架构,以便循环开支并将createdAt属性显示为可重定向到该费用项目的可点击链接?
  2. 何时使用数组,何时在架构中使用对象?
  3. 我在哪里需要uid(唯一ID)?
  4. 我将为此应用使用firebase

1 个答案:

答案 0 :(得分:1)

您有一个expenseList,其中包含与之关联的date和expenseItems。您可以拥有大致相同的架构。 expenseList将是一个对象数组。每个expenseList都是一个对象,包含uid(用于唯一标识列表),createdAt和具有自己的属性集的expenseItems数组。

expenseList: [{
    uid: 'some-uid',
    createdAt: 'some-date',
    expenseItems: [
    {
      date: 'date1',
      desc: 'desc1',
      amount: 'amount1'
    },
    {
      date: 'date1',
      desc: 'desc1',
      amount: 'amount1'
    }
    ]
}]

您可以迭代此expenseList以在第一个屏幕中显示createdAt。单击该消息时,根据该expenseList的唯一ID,获取expenseList并在第二个屏幕上显示expenseItems。

之前我没有使用过firebase,所以你可能需要调整一下架构。