在Firebase文档中,我很难相信Google自己的语言Go不支持child_changed
这样的实时事件
https://firebase.google.com/docs/database/admin/retrieve-data
这些节点示例:
ref.on("child_changed", function(snapshot) {
var changedPost = snapshot.val();
console.log("The updated post title is " + changedPost.title);
});
有没有人在Go语言中编写了一个函数来监听这类事件?
2条答案
按热度按时间bkhjykvo1#
reading data with the admin SDK的Firebase文档包含以下内容:
Go Admin SDK目前只支持阻塞读取。它不能用于添加接收实时更新通知的事件侦听器。
所以看起来Go语言SDK不支持监听更新。
如果您的Go应用程序确实需要这样的更新,可以考虑为数据库的REST流API编写自己的客户机,该API触发REST SSE事件。
3j86kqsm2#
一种方法是在db引用上使用GetIfChanged方法。但问题是,它会在任何字段更改时发送整个Map。因此,您需要自己确定更改的确切内容。此外,在连续循环中运行时,由于每个循环中都有网络调用,因此速度很慢。
真的希望有人能发布更好的解决方案。