小编Kev*_*ert的帖子

如何通过RPC监听Firestore

我想收听Firestore中的实时变化,并且只允许使用Go。由于Go的firestore SDK没有任何选项可以监听实时更改,因此我决定使用firestore v1beta1 sdk。

我写了下面的代码来做到这一点

func TestRPCHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
c, err := firestore.NewClient(context.Background())

databaseName := "projects/[project_name]/databases/(default)"
if err != nil {
    panic(err)
}

stream, err := client.Listen(context.Background())
if err != nil {
    panic(err)
}

request := &firestorepb.ListenRequest{
    Database:             databaseName,
    TargetChange:         &firestorepb.ListenRequest_AddTarget{
        AddTarget: &firestorepb.Target{
            TargetType:           &firestorepb.Target_Documents{
                Documents: &firestorepb.Target_DocumentsTarget{
                    Documents:    []string{"projects/[project_name]/databases/(default)/[collection_name]"} ,
                },
            },
        },
    },
}

if err := stream.Send(request); err != nil {
    panic(err)
}

if err := stream.CloseSend(); err != nil {
    panic(err)
}

for …
Run Code Online (Sandbox Code Playgroud)

rpc real-time go firebase google-cloud-firestore

5
推荐指数
2
解决办法
482
查看次数

标签 统计

firebase ×1

go ×1

google-cloud-firestore ×1

real-time ×1

rpc ×1