2017-01-17 17 views
1

GolangでUserame、Email、およびPasswordを使用してFirebaseにユーザを作成する方法はありますか?ユーザーはcreateUserWithEmailAndPassword(email, password)を使用してJavaScriptを使用して作成できますが、Golangと同じ必要があります。利用可能なパッケージまたは機能はありますか? Firebaseを使ってFirebaseに接続しています。golangを使ってFirebaseでユーザを作成するには?

答えて

1

Go用のFirebase SDKはありません。しかし、Firebaseの特定の部分にはREST APIが用意されているため、ほぼすべてのプラットフォーム/テクノロジーの機能を使用できます。 Firebaseデータベースはこれらの機能の1つであり、Firegoライブラリは、Firebase Database for Go開発者のREST APIのラッパーです。

残念ながら、Firebase認証でユーザーを作成するためのREST APIはありません。したがって、GoのコードからFiregoまたは公開REST APIを通じてユーザーを作成することはできません。

最も簡単な解決策は、制御するアプリケーションサーバーにRESTエンドポイントを作成し、次にFirebase Admin SDKcreate the userを使用することです。

+1

golangのfirebaseにユーザーを作成するための他のリファレンスはありますか? – shivam

2

最近Googleは、Firebase Admin SDKを使用してFirebase認証でサポートされているプログラミング言語のリストにGo Langを追加しました。ユーザーを作成するには

:あなたがあなた自身のユーザーIDを持つユーザーを作成したいと自動化されたくない場合は

params := (&auth.UserToCreate{}). 
     Email("[email protected]"). 
     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) 

はその後FirebaseによりIDを生成:

params := (&auth.UserToCreate{}). 
     UID(uid). 
     Email("[email protected]"). 
     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("[email protected]"). 
     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) 
関連する問題