【发布时间】:2020-12-19 12:54:14
【问题描述】:
我是 nodejs 的新手,有一个我无法解决的问题。 我使用 nodejs 和 firebase 数据库。在数据库中,我有一个关于“工程师”的集合,我想将数据从数据库移动到数组中。
这是我拥有的数据库:我想将首选项变成一个数组:
我想得到这个数组:
const engineers = [
// frontend engineers
{ html: 5, angular: 5, react: 3, css: 3 },
{ html: 4, react: 5, css: 4 },
{ html: 4, react: 5, vue: 4, css: 5 },
{ html: 3, angular: 3, react: 4, vue: 2, css: 3 },
// backend engineers
{ nodejs: 5, python: 3, mongo: 5, mysql: 4, redis: 3 },
{ java: 5, php: 4, ruby: 5, mongo: 3, mysql: 5 },
{ python: 5, php: 4, ruby: 3, mongo: 5, mysql: 4, oracle: 4 },
{ java: 5, csharp: 3, oracle: 5, mysql: 5, mongo: 4 },
// mobile engineers
{ objc: 3, swift: 5, xcode: 5, crashlytics: 3, firebase: 5, reactnative: 4 },
{ java: 4, swift: 5, androidstudio: 4 },
{ objc: 5, java: 4, swift: 3, androidstudio: 4, xcode: 4, firebase: 4 },
{ objc: 3, java: 5, swift: 3, xcode: 4, apteligent: 4 },
// devops
{ docker: 5, kubernetes: 4, aws: 4, ansible: 3, linux: 4 },
{ docker: 4, marathon: 4, aws: 4, jenkins: 5 },
{ docker: 3, marathon: 4, heroku: 4, bamboo: 4, jenkins: 4, nagios: 3 },
{ marathon: 4, heroku: 4, bamboo: 4, jenkins: 4, linux: 3, puppet: 4, nagios: 5 }
];
这是我到目前为止写的代码,但它对我不起作用。
//enginer.js file
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.getPreferancesArray = (req,res) => {
let engineers = {};
db.collection(`/preferences`).get().then((doc) => {
if (doc.exists) {
engineers = doc.data();
console.log(engineers);
}
res.json(engineers);
});
};
//index.js
const {
getPreferancesArray
} = require('./enginer');
const cors = require('cors');
app.use(cors());
app.get('/kmeansArray', FBAuth, getPreferancesArray);
exports.api = functions.region('europe-west1').https.onRequest(app);
问题是:我无法将数据库中的内容转换为数组,我不明白我已经延迟了几个小时的问题。 我希望引擎变量有数组
【问题讨论】:
-
如果你在一个集合上调用 get 那么它应该返回一个查询快照。该快照包含您要查找的文档。尝试将文档映射到数组。
标签: javascript node.js arrays firebase google-cloud-firestore