我的索引中有这个代码。当我向云firestore创建数据时,其他用户会收到一个通知。但这不是工作
const函数=需要('Firebase函数'); const admin=需要('Firebase管理');
管理初始化EAPP();
const db = admin.firestore();
const fcm = admin.messaging();
exports.sendNotification = functions.firestore
.document('donorRequests').
onCreate(async snapshot => {
const req = snapshot.data();
var user = db.collection('account/{uid}').get()
if((db.collection('accounts/{uid}/isVolunteer').get()===true)
&&(db.collection('account/{uid}/bloodType').get()===req.bloodType)
&&(db.collection('account/{uid}/rhesus').get()===req.rhesus)
&&(db.collection('account/latestDonor').get()-Date.now()>54)){
const payload = {
"notification":{
title: 'Hai Pahlawan!',
body: 'Seseorang butuh kamu, yuk kita bantu :)',
clickAction: 'FLUTTER_NOTIFICATION_CLICK'
}
};
return fcm.sendAll(payload);
}
});
您的Firestore云函数触发器有许多错误。
首先,在使用collection
时,它应该仅以字符串形式保存一个集合名称,doc
在所述集合之后包含一些文档路径。例如,要从accounts
集合中获取具有uid1
的文档,操作如下
方法1
db.collection("accounts").doc("uid1").get()
方法二
db.doc("accounts/uid1").get()
其次,这两个方法访问一个文档,这样他们就会返回一个Promise
,它会解析为留档中的DocumentSnapshot
,并且您必须在它们前面添加一个wait
关键字,类似于
const record = await db.collection("accounts").doc("uid1").get();
问题内容: 我的整个项目都使用(Bluebird)Promises,但是有一个使用EventEmitter的特定库。 我想要实现以下目标: 我在Promises链中读了EventEmitter的答案。这给了我一种执行’connect’事件的回调的方法。这是我到目前为止所到之处 现在如何进一步链接“ eventB”? 问题答案: 我假设您想为每个事件做不同的事情。即使由的动作触发,您也可以将其视为另
Apex触发器类似于在特定事件发生时执行的存储过程。 在记录事件发生之前和之后执行触发器。 语法 (Syntax) trigger triggerName on ObjectName (trigger_events) { Trigger_code_block } 执行触发器 以下是我们可以触发的事件 - insert update delete merge upsert undelete 触发示
本文向大家介绍MySQL触发器 Update触发Insert失败,包括了MySQL触发器 Update触发Insert失败的使用技巧和注意事项,需要的朋友参考一下 今天工作需要,想要实现将仅对状态更新的表进行历史记录显示,于是考虑在原表中建立触发器,将更新的内容同时写入另一张表 于是进行测试 执行触发器语句,报错,报错内容如下: 分析,由于访问工具HediSQL,导致无法正常创建触发器,相同语句,
边缘触发是指每当状态变化时发生一个 io 事件,条件触发是只要满足条件就发生一个 io 事件
我想用quartz scheduler使用jdbc数据存储立即执行作业~。然而,即使我使用now()或调用triggerjob进行调度,在调度和触发器fire之间也有20-30秒的延迟。 我尝试用一个简单的触发器执行作业: 并且我还尝试用调度程序触发: 下面是显示延迟的侦听器日志。
主要内容:语法,实例,列出触发器(TRIGGERS),删除触发器(TRIGGERS)SQLite 触发器(Trigger)是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用。以下是关于 SQLite 的触发器(Trigger)的要点: SQLite 的触发器(Trigger)可以指定在特定的数据库表发生 DELETE、INSERT 或 UPDATE 时触发,或在一个或多个指定表的列发生更新时触发。 SQLite 只支持 FOR EACH ROW 触发器(Trigger
PostgreSQL 触发器是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用。 下面是关于 PostgreSQL 触发器几个比较重要的点: PostgreSQL 触发器可以在下面几种情况下触发: 在执行操作之前(在检查约束并尝试插入、更新或删除之前)。 在执行操作之后(在检查约束并插入、更新或删除完成之后)。 更新操作(在对一个视图进行插入、更新、删除时)。 触发器的 FOR EAC
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。 因此触发器不需要人为的去调用,也不能调用。触发器的触发条件其实在定义的时候就已经设定好了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。 触发器的基础知识和示例: Oracle之前插入触发器 - https://www.xnip.cn/oracle/before_insert.html Oracle之后插