如何使用golang在Firebase中创建用户?

3
有没有办法在使用Golang时使用用户名、电子邮件和密码创建Firebase用户。使用Javascript可以使用createUserWithEmailAndPassword(email, password)来创建用户,但我需要在Golang中实现相同的功能。是否有可用的包或函数?我正在使用firego连接Firebase。
2个回答

20

最近,Google将Go Lang添加到其支持使用Firebase Admin SDK进行身份验证的编程语言列表中。

创建用户:

params := (&auth.UserToCreate{}).
        Email("user@example.com").
        EmailVerified(false).
        PhoneNumber("+1234567890").
        Password("secretPassword").
        DisplayName("Donald Drump").
        PhotoURL("http://www.example.com/12345678/photo.png").
        Disabled(false)
u, err := client.CreateUser(context.Background(), params)
if err != nil {
        log.Fatalf("error creating user: %v\n", err)
}
log.Printf("Successfully created user: %v\n", u)

如果你想使用自己的用户ID创建用户,而不是Firebase生成的自动ID,则可以执行以下操作:

params := (&auth.UserToCreate{}).
        UID(uid).
        Email("user@example.com").
        PhoneNumber("+1234567890")
u, err := client.CreateUser(context.Background(), params)
if err != nil {
        log.Fatalf("error creating user: %v\n", err)
}
log.Printf("User created successfully : %v\n", u)

更新用户信息:

params := (&auth.UserToUpdate{}).
        Email("user@example.com").
        EmailVerified(true).
        PhoneNumber("+1234567890").
        Password("newPassword").
        DisplayName("Donald Drump").
        PhotoURL("http://www.example.com/12345678/photo.png").
        Disabled(true)
u, err := client.UpdateUser(context.Background(), uid, params)
if err != nil {
        log.Fatalf("error updating user: %v\n", err)
}
log.Printf("Successfully updated user: %v\n", u)

2
Firebase已经添加了Go的Admin SDK。有关更多信息,请参见Mujtaba的答案:https://dev59.com/mZ7ha4cB1Zd3GeqPg0aj#47889860
以前的回答: 没有适用于Go的Firebase SDK。但是,Firebase的某些部分具有REST API,允许您从几乎任何平台/技术使用这些功能。 Firebase数据库就是其中之一,Firego库是针对Go开发人员的Firebase数据库REST API的包装器。 不幸的是,Firebase身份验证中没有用于创建用户的REST API。因此,无法通过Firego或通过公共REST API从Go代码创建用户。
最简单的解决方案是在您控制的应用程序服务器上创建一个REST端点,然后使用Firebase Admin SDK创建用户

1
在 Golang 中,我们是否有其他参考来创建 Firebase 用户? - Shivam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接