假设我的数据库如下所示:
project
└── users
├── safuhf8sdf76fs
│ ├── name: 'William'
│ └── favoriteColor: 'blue'
├── sffuef5srf72fd
│ ├── name: 'Emily'
│ └── favoriteColor: 'yellow'
└── rfdu4ffsgf42gi
├── name: 'Sam'
└── favoriteColor: 'red'
我正在尝试创建一个Cloud Function,该Cloud Function在任何
favoriteColor
对象的user
值被更改/添加/删除时都会触发。我遇到的问题是创建对所述密钥的引用。
我知道我可以通过以下方式收听用户的所有更改
exports.updatedFavoriteColor = functions.database.ref('/users').onWrite(event => { ... });
然后只需检查更改的数据以查看是否为
favoriteColor
。尽管这可行,但我更喜欢一个专门监听所有用户对象的
favoriteColor
键的触发器-类似于这样:functions.database.ref('/users').child(?).child('favoriteColor')
例如,当更改William或Emily的
favoriteColor
而不是更改Sam的name
时,将调用我更喜欢的函数。这可能吗? 最佳答案
我想我已经进行了更多的挖掘。
Firebase docs建议我可以执行以下操作:
exports.updatedFavoriteColor = functions.database.ref('/users/{pushId}/favoriteColor').onWrite(event => { ... });
对于任何用户,这都应由
favoriteColor
的更改触发,其中要更新的特定用户由参考中的{pushId}
表示。在函数本身中,您可以使用event.params.pushId
引用用户ID。