私はFirebaseUI-Androidで遊んでいて、ユーザーを一意に識別するときに使用するIDについて質問します。 FirebaseUIは認証の権利を管理し、IdpResponse
オブジェクトを返します。これは、例えば、 Facebook、Twitter、Phone and more ..これは背後にいる皆さんに感謝しています。FirebaseユーザーIDを使用していないカスタムFirebaseユーザーID
FirebaseUser.getUid()
は、ユーザーが自分のアカウントを削除/再作成したときに変更される可能性があるため、ユーザーデータをFirebaseUser.getUid()
トークンとリンクさせたくありません。
将来、ユーザーがアカウントを消去できるようにすると、ユーザーが戻ったときにuidが変更され、システムのそのユーザーのすべてのユーザー履歴にもうアクセスできなくなります。将来的に私のシステムをどこかに移行すれば、uidはそんなにうまくいきません。
今度はこのラッパー(以下のコード)を作成して、IdpResponse
内のデータから外挿した一意のIDを作成しました。本当にDunnoですが、私はGoogle2.0がない限り、このようにして "id"衝突が起こることはありません。 Twitter2.0 :)右。そして同時に、IDはUUIDではないので、システムのバグを暴くことは簡単です。
これは、ユーザーIDの問題を処理するための推奨方法ですか。私は本当にこれに関するいくつかのフィードバックと落とし穴の警告が必要です。私はまだFirebaseUser.getUid()
を使用する必要がありますので、これを最も気に何
@Override
public String getUserId() {
String userId;
FirebaseUser user = getInstance().getCurrentUser();
if (user.getEmail() != null)
// User sign in with E-Mail
userId = user.getEmail().replace(".", ",");
else if (user.getPhoneNumber() != null){
// User sign in with Phone
userId = user.getPhoneNumber();
}else
// User sign in with Twitter or Facebook
userId = user.getUid();
return userId;
}
は、TwitterやFacebookのです。 IdpResponse.getIdpToken()
は私たちにとってより良いものですか?
私は同じことを考えていました。 –
私の答えがあなたを助けてくれたと思ったら、それを受け入れて+1を与えることを検討してください。ありがとう! –