【发布时间】:2021-04-15 07:58:13
【问题描述】:
我的云功能出现此错误
Error: Reference.set failed: First argument contains NaN in property 'server.saving-data.fireblog.history.newid.Id'
at validateFirebaseData (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:1497:15)
at /workspace/node_modules/@firebase/database/dist/index.node.cjs.js:1534:13
at each (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:554:13)
at validateFirebaseData (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:1517:9)
at /workspace/node_modules/@firebase/database/dist/index.node.cjs.js:1534:13
at each (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:554:13)
at validateFirebaseData (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:1517:9)
at validateFirebaseDataArg (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:1475:5)
at Reference.set (/workspace/node_modules/@firebase/database/dist/index.node.cjs.js:13928:9)
at /workspace/index.js:44:20
我打出来的js代码如下
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
var db = admin.database();
var ref = db.ref("server/saving-data/fireblog");
exports.addHistory = functions.database.ref('issue/{id}').onCreate(async (snapshot, context) => {
const val = snapshot.val();
var lastid;
return admin.database().ref('history').orderByChild("Id").limitToLast(1).on("child_added", function (snapshot) {
snapshot.forEach(function (data) {
lastid = data.val().Id;
});
const timeElapsed = Date.now();
const today = new Date(timeElapsed);
var datetime=today.toUTCString();
var newid = lastid + 1;
var usersRef = ref.child("history");
usersRef.set({
newid: {
Lamp: val.Id,
Reported: datetime,
Completed:"",
Status:"Pending",
AssignedTo:"",
Id:newid
}
});
});
});
这是我需要添加记录的地方 所以我得到当前情况下的最后一个 Id 是 2 并增加 1 使 3 并添加一个带有键 3 的新记录
规则已定
【问题讨论】:
标签: javascript node.js firebase firebase-realtime-database google-cloud-functions