> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Lock.Android:サインアップ時のカスタムフィールド

> Lock.Androidを使用してサインアップに追加のフィールドを追加する

**Lock.Android** を使用すると、新しいアカウントを作成する前にユーザーが入力する必要がある追加のフィールドを指定できます。ユーザーが基本フィールド（メール、ユーザー名、パスワード）を入力した後、追加のフィールドが2番目の画面に表示されます。

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

これら4つの必須パラメーターをすべて渡す新しい`CustomField`オブジェクトを作成します。

1. Icon:Iconとして使用するリソースを指す`int`（小さい値にします）。
2. Type:このフィールドで使用する`FieldType`です。Typeはキーボード レイアウトを定義し、場合によっては入力検証を定義します。
3. Key:結果の JSON でこの値を識別する`文字列`です。これは繰り返すことはありません。フィールド キーが繰り返されると、2番目のフィールドがリストから削除されます。
4. ヒント:フィールドにヒントとして表示されるテキストの`@StringRes`です。

さらに、フィールドがユーザーのプロファイルに保存される場所を指定できます。詳細については、以下の[ストレージ](#storage)セクションを参照してください。

ユーザーには表示されないが、サインアップ後に動的に追加のメタデータを含めるために使用できるフィールドを作成することもできます。

```kotlin lines theme={null}
// Regular field
val nameField = CustomField(R.drawable.ic_name, FieldType.TYPE_NAME, "first_name", R.string.hint_first_name, CustomField.Storage.PROFILE_ROOT)

// Hidden field
val androidField = HiddenField("android_version", Build.VERSION.SDK_INT.toString(), Storage.USER_METADATA)

val customFields = listOf(nameField, androidField)
```

必要なフィールドの数だけ上記の手順を繰り返します。

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

`withSignUpFields()`メソッドを使用して、構築中にカスタムフィールドのリストをLockインスタンスに渡します。

```kotlin lines theme={null}
val lock = Lock.newBuilder(auth0, callback)
              .withSignUpFields(customFields)
              //...
              .build(this)
```

アプリケーションのダッシュボードでサインアップを有効にした場合、ユーザーは基本フィールド（メール/ユーザー名、パスワード）を入力して **［Submit（送信）］** をクリックした後、残りのフィールドを入力するように求められます。サインアップを完了するには、ユーザーはすべてのカスタムフィールドに入力する必要があります。

サインアップ時に、選択したストレージ オプションに応じて、追加のフィールドが`user_metadata`属性に添付されるか、ルートユーザープロファイルに直接設定されます。これらのプロパティには、ユーザー セクションのDashboardからでも、いつでもユーザープロファイルを照会してアクセスできます。

## Field Types（フィールドタイプ）

各カスタムフィールドには、1つの`FieldType（フィールドタイプ）`のみを関連付けることができます。

* TYPE\_NAME
* TYPE\_NUMBER
* TYPE\_PHONE\_NUMBER
* TYPE\_EMAIL

## ストレージ

各カスタムフィールドには、1つの`Storage（ストレージ）`のみを関連付けることができます。ルートプロファイル属性のルートレベルに保存するか、`user_metadata`属性内に保存するかを選択できます。`Storage（ストレージ）`の場所を指定するには、5つのパラメーターのコンストラクターを使用し、選択したStorageパラメーターを渡します。デフォルトでは、フィールドは`user_metadata`属性内に保存されます。

利用可能な選択肢:

* PROFILE\_ROOT
* USER\_METADATA（デフォルト）

フィールドをユーザープロファイルのルートレベルに保存するには、そのキーが[エンドポイントのドキュメント](/docs/ja-jp/api/authentication#signup)にリストされているキーと一致する必要があります。
