我正在使用 Go Firebase 管理 SDK 并偵聽(tīng)實(shí)時(shí)數(shù)據(jù)庫(kù)中的更改。問(wèn)題在于,只有當(dāng)我從 Firebase 控制臺(tái)手動(dòng)更新數(shù)據(jù)時(shí),偵聽(tīng)器才會(huì)被觸發(fā),如果我從另一個(gè)應(yīng)用程序(在本例中為 Flutter)更改數(shù)據(jù),即使可以在 Firebase 控制臺(tái)中看到更改,也不會(huì)觸發(fā)偵聽(tīng)器(因此數(shù)據(jù)肯定已更改)。我甚至嘗試通過(guò) Firebase 數(shù)據(jù)庫(kù) REST API 執(zhí)行更新 https://firebase.google.com/docs/reference/rest/database#section-streaming結(jié)果相同:數(shù)據(jù)更改可在控制臺(tái)中查看,但仍不會(huì)觸發(fā)偵聽(tīng)器。以下是我收聽(tīng) 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") }}偵聽(tīng)器是通過(guò)從控制臺(tái)更新數(shù)據(jù)觸發(fā)的,則表明偵聽(tīng)器工作正常。附言:監(jiān)聽(tīng)方法尚未集成到 Go Firebase 管理 SDK 中,并且來(lái)自 https://github.com/firebase/firebase-admin-go/issues/229
未觸發(fā)基于火庫(kù)的 SDK 事件偵聽(tīng)器
慕尼黑8549860
2022-09-26 20:17:59