【发布时间】:2019-05-10 13:47:31
【问题描述】:
我正在通过 Python 选项为 Firebase 编写云函数。我对 Firebase 实时数据库触发器感兴趣;换句话说,我愿意收听实时数据库中发生的事件。
Python 环境为处理实时数据库触发器提供了以下签名:
def handleEvent(data, context):
# Triggered by a change to a Firebase RTDB reference.
# Args:
# data (dict): The event payload.
# context (google.cloud.functions.Context): Metadata for the event.
这看起来不错。 data 参数提供2个字典; 'data' 用于通知更改前的数据,'delta' 用于更改位。
将此签名与Node.js 环境进行比较时会产生混淆。这是来自Node.js世界的类似签名:
exports.handleEvent = functions.database.ref('/path/{objectId}/').onWrite((change, context) => {}
在这个签名中,change 参数非常强大,它似乎是firebase.database.DataSnapshot 类型。它有很好的辅助方法,例如hasChild() 或numChildren(),可提供有关已更改对象的信息。
问题是:Python 环境是否有类似的DataSnapshot 对象?使用 Python,我是否必须查询数据库以获取孩子的数量?目前还不清楚 Python 环境能做什么,不能做什么。
相关 API/参考/文档:
【问题讨论】:
标签: python firebase firebase-realtime-database google-cloud-functions