web-dev-qa-db-ja.com

Firebase AuthユーザーをFirestoreドキュメントにマッピングする

FirebaseFirestoreデータベースを使用して、AndroidアプリでUsersを処理しようとしています。

最初は、Authパッケージ(文字列)から返されたidを使用し、それをデータベースのusersCollectionのidとして設定します。 DocumentCollectionの内部でusersを作成するとき、uidフィールドをその認証パッケージ文字列に設定します。

その文字列をインデックス可能な値に設定する方法はないため、クエリは次のようになります。

_// get Auth package uid string
db.collection("users").document(auth_uid_string);
_

動作します。

代わりに、私は推測しますが、Query.whereEqualTo("uid", auth_uid_string)を使用すると、リスト内のユーザーが表示されます。これは、firestoreがクエリが一意の値に対するものであると想定しないためです。

上記の解決策を避け、アプリのusersfirestoreに保存する方法を考案し、authパッケージを使用して、正しいユーザーを取得したことを確認します。そのような解決策は可能ですか?または、differentfirebaseサービスを試すべきですか、それともherokuなどでpostgresサーバーを実行するだけですか?

20
Nevermore

私はAndroidでこれを行う方法がわかりませんが、JSでは次のことをしています:

firebase.firestore().collection('users').doc(currentUser.uid).set(currentUser)

currentUserは、認証関数が返すユーザーオブジェクトです(signInWithCredentialを使用します)。これは完全に機能しています。 Androidでも同様のアプローチを実装できると確信しています。

26
Ziad Alame