【问题标题】:Saving data in firebase with mapping使用映射将数据保存在 Firebase 中
【发布时间】:2019-12-22 07:18:57
【问题描述】:

我只是将数组传递给 firebase 来存储数据,但这不是从数组中查询数据的有效方法。所以,我打算以映射格式存储数据。但不知道该怎么做。

{
   "ClassDetails": 
   [
     {
       "Code": "CIS695",
       "Instructor": "Dr. Antony",
       "Location": "BB444",
       "Name": "Capstone project"
     }
   ],
   "PersonalDetials": [
     {
       "Email": "rshah2@murraystate.edu",
       "FName": "Ravi",
       "LName": "Shah",
       "Major": "MSIS"
     }
   ]
 }

想改成这种格式

{
   "ClassDetails": 
     "CIS695"{
       "Code": "CIS695",
       "Instructor": "Dr. Antony",
       "Location": "BB444",
       "Name": "Capstone project"
       }
       "CIS690"{
       "Code": "CIS690",
       "Instructor": "Dr. Smith",
       "Location": "BB444",
       "Name": "Project Management"
       }
   "PersonalDetials": 
     {
       "Email": "rshah2@murraystate.edu",
       "FName": "Ravi",
       "LName": "Shah",
       "Major": "MSIS"
     }
 }

尝试了所有方法,但找不到合适的解决方案。Data structure in firebase

【问题讨论】:

    标签: angular typescript firebase ionic-framework google-cloud-firestore


    【解决方案1】:

    考虑到data的结构不会改变,试试这个:

    const data = {
      "ClassDetails": [{
        "Code": "CIS695",
        "Instructor": "Dr. Antony",
        "Location": "BB444",
        "Name": "Capstone project"
      }],
      "PersonalDetials": [{
        "Email": "rshah2@murraystate.edu",
        "FName": "Ravi",
        "LName": "Shah",
        "Major": "MSIS"
      }]
    };
    
    const mappedData = { ...data
    };
    mappedData.ClassDetails = {};
    for (const item in data.ClassDetails) {
      const itemToAdd = { ...data.ClassDetails[item]
      };
      mappedData.ClassDetails[itemToAdd.Code] = itemToAdd;
    }
    mappedData.PersonalDetials = mappedData.PersonalDetials[0];
    
    console.log(mappedData);

    【讨论】:

      【解决方案2】:

      试试这样:

        output = {};
        constructor() {
          let classDetails = {};
          this.input.ClassDetails.forEach(item => {
            classDetails[item.Code] = item;
          });
          this.output["ClassDetails"] = classDetails;
          this.output["PersonalDetials"] = this.input.PersonalDetials[0];
          console.log(this.output);
        }
      

      Working Demo

      【讨论】:

        猜你喜欢
        • 2014-10-14
        • 1970-01-01
        • 1970-01-01
        • 2021-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多