繁体   English   中英

Firebase的云功能:如何为所有子项的特定子键触发数据库功能

[英]Cloud Functions for Firebase: How do I trigger a database function for a specific child key of all children

假设我的数据库如下所示:

project
└── users
    ├── safuhf8sdf76fs
    │   ├── name: 'William'
    │   └── favoriteColor: 'blue'
    ├── sffuef5srf72fd
    │   ├── name: 'Emily'
    │   └── favoriteColor: 'yellow'
    └── rfdu4ffsgf42gi
        ├── name: 'Sam'
        └── favoriteColor: 'red'

我正在尝试创建一个在更改/添加/删除任何user对象的favoriteColor值时触发的云功能。

我遇到问题的部分是创建对所述密钥的引用。

我知道我可以听取用户的任何和所有更改

exports.updatedFavoriteColor = functions.database.ref('/users').onWrite(event => { ... });

然后只需检查更改的数据,看它是否是favoriteColor

虽然这可行,但我更喜欢一个专门监听所有用户对象的favoriteColor键的触发器 - 类似这样的东西: functions.database.ref('/users').child(?).child('favoriteColor')

当威廉或艾米丽的favoriteColor被改变时,我会调用我更favoriteColor的函数,但是当Sam的name改变时,不会被调用。 这可能吗?

我想我想通过更多的挖掘来解决这个问题。

Firebase文档建议我可以执行以下操作:

exports.updatedFavoriteColor = functions.database.ref('/users/{pushId}/favoriteColor').onWrite(event => { ... });

这应该由对任何用户的favoriteColor的更改触发,其中更新的特定用户由引用中的{pushId}表示。 在函数本身中,您可以使用event.params.pushId引用用户标识

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM