【发布时间】:2018-09-27 22:44:36
【问题描述】:
我正在尝试部署 firebase 功能,但出现错误
src/index.ts(132,31):错误 TS2339:“更改”类型上不存在属性“数据”。 src/index.ts(136,65): 错误 TS2339: “更改”类型上不存在属性“参数”。 src/index.ts(142,18):错误 TS2339:属性“数据”不存在 输入“更改”。
我的代码
module.exports.onUserStatusChanged = functions.database
.ref('/users/{uid}').onUpdate((event) => {
// Get the data written to Realtime Database
const eventStatus = event.data.val();
// Then use other event data to create a reference to the
// corresponding Firestore document.
const userStatusFirestoreRef = firestore.doc(`users/${event.params.uid}`);
// It is likely that the Realtime Database change that triggered
// this event has already been overwritten by a fast change in
// online / offline status, so we'll re-read the current data
// and compare the timestamps.
return event.data.ref.once("value").then((statusSnapshot) => {
return statusSnapshot.val();
}).then((status) => {
console.log(status, eventStatus);
// If the current timestamp for this data is newer than
// the data that triggered this event, we exit this function.
if (status.last_changed > eventStatus.last_changed) return;
// Otherwise, we convert the last_changed field to a Date
eventStatus.last_changed = new Date(eventStatus.last_changed);
// ... and write it to Firestore.
//return userStatusFirestoreRef.set(eventStatus);
return userStatusFirestoreRef.update(eventStatus);
});
});
它显示红色下划线
event.data.val()
event.params.uid
【问题讨论】:
-
检查答案,我也不确定您是否使用云火库。如果您使用的是云 Firestore,那么您需要使用
exports.onUserStatusChanged = functions.firestore.document('/path').onUpdate((change,context) => {还要检查 firestore 部分 firebase.google.com/docs/functions/beta-v1-diff#cloud-firestore
标签: javascript node.js firebase google-cloud-firestore google-cloud-functions