我在Cloud Firestore 函数日志视图中收到此错误。
我是 JavaScript 和 Firestore 的新手,可以在这方面使用一些建议
类型错误:event.data.previous.data 不是exports.onVisitorPres 的函数...
exports.onVisitorPresenceWrite = functions.database
.ref("/VISITORS_PRESENCE/{uid1}/{uid2}").onWrite((event) => {
// Get the data written or deleted on the Realtime Database
var eventStatus = event.data.val();
const previousData = event.data.previous.data();
// If the onWrite event is a delete event then use previousData
if(eventStatus == null){
eventStatus = previousData;
}
});
我想要做的是.onWrite((event)
在删除关键项目和添加新项目时使用Firebase 实时数据库键和 Firestore 函数触发器。我想我可以检查一下eventStatus == null
,那就是当数据被删除时,我只需使用 previousData (在它被删除之前??)
该event
变量是 的一个实例,Event
因此调用event.data
将为DeltaDocumentSnapshot
Firestore返回 a ,DeltaSnapshot
为实时数据库返回 a 。
使用这些增量快照,您可以获得先前的值,previous
该值将返回另一个DeltaDocumentSnapshot
或DeltaSnapshot
包含触发写入事件之前的先前状态。
在您的示例中,您使用的是 Firebase 实时数据库触发器,这意味着event.data.previous
将返回一个DeltaSnapshot
,它不支持data()
,而是支持val()
。
在这种情况下,你有做var eventStatus = event.data.val();
,你需要调用val()
上previous
:
const previousData = event.data.previous.val();
如果您尝试使用 Firestore 触发器,则需要更改此设置:
functions.database.ref("[...]")
对此:
functions.firestore.document("[...]")
然后你可以使用event.data.previous.data()
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句