Skip to main content
Lock.Android では、新しいアカウントを作成する前に、ユーザーに追加フィールドの入力を必須にできます。追加フィールドは、ユーザーが基本フィールド (メールアドレス、username、パスワード) を入力した後、2 つ目の画面に表示されます。

カスタムフィールド を作成する

以下の 4 つの必須パラメーターをすべて渡して、新しい CustomField オブジェクトを作成します。
  1. Icon: アイコンとして使用するリソースを指す int です (小さいものを使用してください) 。
  2. Type: このフィールドで使用する FieldType です。この型によってキーボードレイアウトが決まり、場合によっては入力検証も定義されます。
  3. Key: 結果の JSON 内でこの値を識別する String です。重複はできません。フィールドキーが重複すると、2 つ目のフィールドはリストから削除されます。
  4. Hint: フィールド内のヒントとして表示するテキストの @StringRes です。
さらに、そのフィールドをユーザーのプロフィールのどこに保存するかを指定できます。詳細については、以下の Storage セクションを参照してください。 また、ユーザーには表示されないものの、サインアップ後に追加のメタデータを動的に含めるために使用できるフィールドを作成することもできます。
// 通常フィールド
val nameField = CustomField(R.drawable.ic_name, FieldType.TYPE_NAME, "first_name", R.string.hint_first_name, CustomField.Storage.PROFILE_ROOT)

// 非表示フィールド
val androidField = HiddenField("android_version", Build.VERSION.SDK_INT.toString(), Storage.USER_METADATA)

val customFields = listOf(nameField, androidField)
必要なフィールドの数だけ、上記の手順を繰り返してください。

カスタムフィールドを使用する

Lock インスタンスの構築時に、withSignUpFields() メソッドを使用してカスタムフィールドのリストを渡します。
val lock = Lock.newBuilder(auth0, callback)
              .withSignUpFields(customFields)
              //...
              .build(this)
アプリケーションのダッシュボードでサインアップを有効にしている場合、ユーザーは基本フィールド (メールアドレス/username、パスワード) を入力して Submit をクリックした後、残りのフィールドの入力を求められます。ユーザーは、サインアップを完了する前に、すべてのカスタムフィールドを入力する必要があります。 サインアップ時には、追加フィールドは、選択した Storage オプションに応じて user_metadata 属性に追加されるか、ルートのユーザープロファイルに直接設定されます。これらのプロパティには、ダッシュボードの Users セクションからでも、いつでもユーザープロファイルを照会してアクセスできます。

フィールドタイプ

各カスタムフィールドには、関連付けられる FieldType を 1 つだけ指定できます。
  • TYPE_NAME
  • TYPE_NUMBER
  • TYPE_PHONE_NUMBER
  • TYPE_EMAIL

ストレージ

各カスタムフィールドに関連付けられる Storage は 1 つだけです。保存先として、ルートレベルのプロフィール属性、または user_metadata 属性内を選択できます。保存場所を指定するには、5 つのパラメーターを持つコンストラクターを使用し、使用する Storage パラメーターを渡します。既定では、フィールドは user_metadata 属性内に保存されます。 利用可能な選択肢:
  • PROFILE_ROOT
  • USER_METADATA (既定)
フィールドをユーザーのプロフィールのルートレベルに保存するには、そのキーが エンドポイントのドキュメント に記載されているキーと一致している必要があります。