firebase-admin-sdk-go FCM 消息线程安全



我一直在尝试确定 Go的 firebase-admin-sdk 的 FCM 消息传递部分是否线程安全。我正在使用v4的 SDK。

firebase "firebase.google.com/go/v4"
"firebase.google.com/go/v4/messaging"

我发现其他一些人报告说 SDK 的身份验证部分是线程安全的。基于此,我认为这意味着消息传递也是如此,但希望得到一些确认,因为我没有在文档中看到它。

我的用例是,我实际上是在 api 服务中创建 FCM 消息传递客户端的一个实例。初始化fcmClient.Send()方法后,此客户端的任意数量的并行使用都可以

调用该方法。谢谢!

是的,从多个并发例程调用是安全的。唯一的共享资源是底层http.Client实例,它是线程安全的:https://golang.org/src/net/http/client.go

我假设您的每个例程都构造自己的messaging.Message结构。如果多个例程共享和修改相同的Message,则可能会遇到丢失更新问题等问题。

最新更新