我正面临错误:firebase上参数“ data”的值。
情况
我试图从本地访问,但是没有用..........
您能确认我的错误吗?
index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.getScreams = functions.https.onRequest((req, res) => {
admin.firestore().collection('screams').get()
.then(data => {
let screams
data.forEach( doc => {
screams.push(doc.data());
});
return res.json(screams);
})
.catch((err) => console.error(err));
});
exports.createScreams = functions.https.onRequest((req, res) => {
const newScreams = {
body: req.body.body,
userHandle: req.body.userHandle,
createdAt: admin.firestore.Timestamp.fromDate(new Date())
};
admin
.firestore()
.collection('screams')
.add(newScreams)
.then(doc => {
res.json({Message: 'document ${doc.id} created successfully'});
})
.catch((err) => {
res.status(500).json({ error: 'something went wrong'});
});
console.error(err);
});
屏幕截图
答案 0 :(得分:1)
应该是data.docs:
data.docs.forEach(doc => {
screams.push(doc.data());
});
答案 1 :(得分:1)
该错误消息表明新文档数据中的body
的值为undefined
,该值无效。由于您这样设置body
:
body: req.body.body
似乎req.body.body
不存在。您是要使用req.body
吗?
如果req.body.body
是正确的,但实际上没有任何价值,则您现在可以tell Firestore to ignore the undefined
,因此不添加字段。为此,您需要在读取/写入任何内容之前调用以下内容:
const firestore = admin.firestore();
firestore.settings({ignoreUndefinedProperties:true});