useSetDocs(ドキュメントの一括書き込み)
Firestore 上のドキュメントにデータを書き込むのに用います。
const [setFn, writing, called, error] = useSetDoc(path, query, options);
Hooks の戻り値
setFn:
(...args: any[]) => voidデータを書き込むための関数です。
writing:
booleanデータを書き込んでいるかを表します。
called:
booleansetFnが呼び出されたかどうかを表します。error:
Errorデータ書き込みの際にエラーが発生した場合エラー内容が入力されます。初期値には
nullが代入されています。
Hooks の引数
path:
string書き込み対象のドキュメントの Firestore 上のパスです。
query:
SetFqlドキュメントに書き込む内容を宣言的に示すオブジェクトです。 書き込む内容を Hooks を使う時点で確定させる
StaticSetFqlを用いたり、 書き込む内容をsetFnを呼び出す時点で確定させるDynamicSetFqlを用いることができます.
optional options:
objectデータを取得する際のオプションです。
options の内容
optional merge:
boolean書き込み時に、ドキュメントの既存のフィールドを上書きするかを指定します。
optional mergeFields:
string[]書き込み時に、ドキュメントのどのフィールドを上書き対象にするかを指定します。
optional callback:
() => voidデータを書き込む際に実行される関数を指定することができます。
Example
const fql = {
"/cities/Tokyo": {
fields: {
country: "Japan",
population: 35676000,
},
},
"/users/adams": {
fields: {
age: 22,
gender: "man",
name: "James Adams",
},
},
};
const [setFn, writing, called, error] = useSetDocs(fql);
更新前の Firestore が次のようになっているとします。
─── cities
├── MexicoCity
│ ├── country: "Mexico"
│ ├── name: "Mexico City"
│ └── population: 19028000
└── NewYork
├── country: "United States"
├── name: "New York"
└── population: 19354922
次を実行することでデータが更新されます。
setTokyo();
更新後の Firestore は次のようになります。
├── cities
│ ├── MexicoCity
│ │ ├── country: "Mexico"
│ │ ├── name: "Mexico City"
│ │ └── population: 19028000
│ ├── NewYork
│ │ ├── country: "United States"
│ │ ├── name: "New York"
│ │ └── population: 19354922
│ └── Tokyo
│ ├── country: "Japan"
│ ├── name: "Tokyo"
│ └── population: 35676000
└── users
└── adams
├── age: 22
├── gender: "man"
└── name: "James Adams"