Go Firebase Admin SDK Realtime Database监听器仅控制台更新触发,其他途径不触发
Go Firebase Admin监听Realtime Database仅控制台修改触发,其他端修改不触发问题
我正在使用Go Firebase Admin SDK监听Realtime Database的数据变更。目前遇到的问题是:仅当我从Firebase控制台手动更新数据时,监听器才会被触发;如果我通过其他应用(本次为Flutter应用)修改数据,即便修改后的数据在Firebase控制台可见(说明数据确实已变更),监听器也不会被触发。
我甚至尝试通过Firebase Database REST API执行更新操作,结果一致:数据变更可在控制台查看,但仍然无法触发监听器。
以下是我在Go中监听数据变更的代码实现:
func listenToFirebase(ref *db.Ref, ctx context.Context) { iter, err := ref.Listen(ctx) if err != nil { fmt.Printf(" Error: failed to create Listener %v\n", err) return } defer iter.Stop() for { if iter.Done() { break } event, err := iter.Next() if err != nil { // 可根据业务场景处理错误,不影响后续监听逻辑 log.Printf("%v\n", err) continue } fmt.Printf("Listener | Ref Path: %s | event.Path %s | event.Snapshot() = %v\n", ref.Path, event.Path, event.Snapshot()) fmt.Printf("\n") } }
从控制台修改数据可触发监听器的现象表明,监听器本身的基础功能是正常的。
备注:上述代码所用的Listen方法尚未被官方Go Firebase Admin SDK集成,为社区实现方案。
内容的提问来源于stack exchange,提问作者juicy
相关产品推荐
相关产品推荐

