2017-08-08 11 views
0

アカウント作成時に自動的に生成されるFirebaseユーザUIDを誰かが指定して管理しているのだろうかと思います。私がこれをしたい理由は、私のアプリでは医者と患者を扱っているからです。医者は口座を患者に作成することができます。口座には、口座を標準の火災基地のユーザーにすることができると主張するか、請求されないようにすることができます。いずれにしても、この患者アカウントは他の医師と共有することができますので、医師が相談などを読むことができます。ユーザにFirebase UIDを指定する方法は?

医者は正規のファイヤーベースユーザーでなければなりません。 usersノード。アカウントを要求していない患者はunclaimedUsersノードに存在します。ユーザーとクレームされていないユーザーの唯一の違いは、患者のプライマリキーは電子メールアドレスになりますが、ユーザーのプライマリキーは自分のアカウントを作成するときに生成されるファイヤベースUIDになります。

「未請求のユーザ」ノードに電子メールアドレスで格納するのではなく、未請求のユーザをUIDを使用して保存することができます。そのためにアカウントを作成し、オブジェクトはunclaimedUsersからusersノードに移動します。

これは、アカウントが主張されると、アカウントが主張されていても共有されていて、UIDと電子メールアドレスが混在しているため、データ構造全体で更新する必要はありません'清潔ではありません。

firebaseのREST SDKとiOS SDKの両方を調べましたが、標準の電子メール/パスワード認証機能を使用してアカウントを割り当てるUIDを設定する方法はありません。社会的機能。私がこれをやろうとすれば、firebaseの利点の多くを失うので、私がまだ試していない唯一の方法は私自身のカスタム認証を使うことです。

私が使用している構造が装着されている - 第2の目的は、unclaimedを言うところ、これが誰かのメールアドレスになります - トップオブジェクトがuser命名され、これはUID DdxfJdkR0JX1fpXcV07eotxn3M33のようなので、ものになるだろう。

"user": { "address": "1 infinity loop", "country": "AU", "displayPicture": "https://static.pexels.com/photos/7720/night-animal-dog-pet.jpg", "dob": "13/09/1991", "email": "[email protected]", "firstName": "henry", "lastName": "hardy", "mobileNumber": "0400000000", "postcode": "Z4351", "pushNotifications": true }, "unclaimed": { "address": "1 infinity loop", "country": "AU", "displayPicture": "https://static.pexels.com/photos/7720/night-animal-dog-pet.jpg", "dob": "13/09/1991", "email": "[email protected]", "firstName": "henry", "lastName": "hardy", "mobileNumber": "0400000000", "postcode": "Z4351", "pushNotifications": true }

答えて

0

データベースにFirebaseエンドポイントを保存し、あなたが変更エンドポイントがfirebase APIから取得された場合にエンドポイントにいくつかのAPIを作ることを確認してみてください。エンドポイントIDが期限切れになることがあるので、

特定のユーザーに通知する場合は、電子メールなどでクエリを実行してエンドポイント購読IDを取得できます。

関連する問題