【问题标题】:json format in javascriptjavascript中的json格式
【发布时间】:2021-04-08 20:27:50
【问题描述】:

我需要用 Firebase 信息组装一个 JSON 格式的字符串。这个我可以做到,但是字符串结构出错了,我得到了:

[
  '7801',
  {
    keycode: '111111',
    dataStatus: 'Test1'
  },
  '7802',
  {
    keycode: '222222',
    dataStatus: 'Test2'
  }
]

但应该是:

{
  '7801':
  {
    keycode: '111111',
    dataStatus: 'Test1'
  },
  '7802':
  {
    keycode: '222222',
    dataStatus: 'Test2'
  }
}

我的代码:

const admin = require('firebase-admin');
const serviceAccount = require('./firestore/firestoreTeste.json');
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
});

const db = admin.firestore();

let results = [];
let documents = db.collection('place2').get()
    .then(snapshot => {
        snapshot.forEach(doc => {
            var namePlace;
            namePlace = doc.id.toString();
            let subCollectionDocs = db.collection('place2').doc(doc.id).collection("locals").get()
                .then(snapshot => {
                    results = []
                    snapshot.forEach(doc => {
                        results.push(doc.id, doc.data());

                    })
                    console.log(results);
                }).catch(err => {
                    console.log("Error subcolection", err);
                })
        });
    }).catch(err => {
        console.log("Error documents", err);
    });

我是 JS 的初学者,我无法更改此结构。

有人知道我应该怎么做吗?

谢谢!

【问题讨论】:

    标签: javascript json firebase google-cloud-firestore


    【解决方案1】:

    results 声明为对象,这似乎是您真正想要做的:

    let results = {};
    

    然后,不是push()将结果放入数组结构中,而是在results中创建一个键和一个关联的值:

    results[doc.id] = doc.data();
    

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 2013-08-19
      • 2015-09-15
      • 1970-01-01
      • 2014-10-10
      相关资源
      最近更新 更多