FirebaseのFirestore
データベースを使用して、AndroidアプリでUser
sを処理しようとしています。
最初は、Auth
パッケージ(文字列)から返されたidを使用し、それをデータベースのusers
Collection
のidとして設定します。 Document
Collection
の内部でusers
を作成するとき、uid
フィールドをその認証パッケージ文字列に設定します。
その文字列をインデックス可能な値に設定する方法はないため、クエリは次のようになります。
_// get Auth package uid string
db.collection("users").document(auth_uid_string);
_
動作します。
代わりに、私は推測しますが、Query.whereEqualTo("uid", auth_uid_string)
を使用すると、リスト内のユーザーが表示されます。これは、firestoreがクエリが一意の値に対するものであると想定しないためです。
上記の解決策を避け、アプリのusers
をfirestore
に保存する方法を考案し、auth
パッケージを使用して、正しいユーザーを取得したことを確認します。そのような解決策は可能ですか?または、differentfirebaseサービスを試すべきですか、それともherokuなどでpostgresサーバーを実行するだけですか?
私はAndroidでこれを行う方法がわかりませんが、JSでは次のことをしています:
firebase.firestore().collection('users').doc(currentUser.uid).set(currentUser)
currentUser
は、認証関数が返すユーザーオブジェクトです(signInWithCredential
を使用します)。これは完全に機能しています。 Androidでも同様のアプローチを実装できると確信しています。