【发布时间】:2021-11-03 15:37:09
【问题描述】:
我正在使用 Go Firebase Admin SDK 并监听实时数据库中的变化。 问题是如果我从 Firebase 控制台手动更新数据,监听器会仅被触发,如果我从另一个应用程序(在本例中为 Flutter)更改数据,监听器是 NOT strong> 即使在 Firebase 控制台中可以看到更改也会触发(因此数据肯定会更改)。
我什至尝试通过 Firebase 数据库 REST API https://firebase.google.com/docs/reference/rest/database#section-streaming执行更新
结果相同:在控制台中可以查看数据更改,但仍然不会触发侦听器。
这是我聆听 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 {
// Handle error here based on specific usecase
// We can continue Listening
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-Method 尚未集成到 Go Firebase Admin SDK 中,来自https://github.com/firebase/firebase-admin-go/issues/229
【问题讨论】:
标签: firebase flutter go firebase-realtime-database