型定義
DocData
Fireclient で Firestore 上のドキュメントを取得した際の型であり、useGetDoc や useSubscribeDoc などで取得したデータは全てこの型になります。
型 : object
プロパティ
data:
{[field: string]: any}取得したドキュメントの内容です。
id:
string取得したドキュメントの Firestore 上でのドキュメント ID です。
例えば、/cities/Tokyoに存在するドキュメントを取得した場合、Tokyoが id となります。
例
{
data: {
name: "New York",
population: 19354922,
country: "United States",
},
id: "NewYork",
};
CollectionData
Fireclient で Firestore 上のコレクションを取得した際の型であり、useGetCollection や useSubscribeCollection などで取得したデータは全てこの型になります。
型 : DocData[]
例
[
{
data: {
name: "New York",
population: 19354922,
country: "United States",
},
id: "NewYork",
},
{
data: {
country: "Japan",
name: "Tokyo",
population: 35676000,
},
id: "Tokyo",
},
];
Query
特定のドキュメントやコレクションを取得するためのクエリです。
型 : object
プロパティ
location:
string取得するドキュメント / コレクションの Firestore 上でのパスを指定します。
optional connects:
booleanドキュメント / コレクション をリッスンするかどうかを指定することができます。
optional acceptOutdated:
booleanFireclient ではリッスンしているドキュメントを取得する際にキャッシュを利用しますが、その機能を過去に取得したドキュメントの再取得にも適応するかを指定できます。
optional callback:
(StaticSetFql | DynamicSetFql) => void
データを取得する際に実行される関数を指定することができます。
optional where:
Where条件を付けてコレクションを取得することができます。
optional limit:
Limit取得するコレクションの数を制限することができます。
optional order:
Orderコレクションをソートした状態で取得します。
limitと組み合わせることで、上位 n 個を取得ということができます。optional cursor:
Cursor取得するコレクションの開始地点・終了地点を指定します。
例
{
location: "/cities/NewYork",
connects: true,
acceptOutdated: true,
callback: () => { ... },
where: { ... },
limit: 15,
order: { ... },
cursor: { ... }
};
ObjectQuery
Firestore 上の複数の ドキュメント / コレクション を取得するためのクエリです。
key には自由に名前を指定することができ、useQuery ではこの key を保持した状態でデータが取得されます。
型 : {[key: string]:Query}
例
{
newYork: {
location: "/cities/NewYork",
},
tokyo: {
location: "/cities/Tokyo",
acceptOutdated: true
}
}
ArrayQuery
Firestore 上の複数の ドキュメント / コレクション を取得するためのクエリです。
ObjectQuery とは異なり、配列で指定することができます。
型 : Query[]
例
[
{
location: "/cities/NewYork",
},
{
location: "/cities/Tokyo",
acceptOutdated: true,
},
];
GetFql<QueryType>
useQuery や useArrayQuery などに渡すための FQL です。
型 : object
プロパティ
queries:
QueryTypeFirestore 上の複数の ドキュメント / コレクション を取得するクエリを指定します。
useQueryではObjectQuery、useArrayQueryではArrayQueryを指定します。optional connects:
booleanドキュメント / コレクション をリッスンするかどうかを指定することができます。
これは queries 全体に反映されますが、Query 側にも指定されていた場合 Query 側の値が優先されます。
optional acceptOutdated:
booleanFireclient ではリッスンしているコレクションを取得する際にキャッシュを利用しますが、その機能を過去に取得したコレクションの再取得にも適応します。
これは
queries全体に反映されますが、クエリ側にも指定されていた場合クエリ側の値が優先されます。optional callback:
() => void全てのクエリを取得した際に実行される関数を指定することができます。
例
{
queries: {
newYork: {
location: "/cities/NewYork",
},
users: {
location: "/users",
},
},
};
SetFql
useSetDoc, useUpdateDoc などで書き込む内容を指定するためのクエリです。
StaticSetFql は指定する時点で内容が決定しており、DynamicSetFql は書き込む関数を実行する時点で内容が決定します。
型 : StaticSetFql |DynamicSetFql
StaticSetFql
型 : object
プロパティ
optional fields:
{[field: string]: any}書き込むドキュメントの内容をオブジェクトで指定します。
optional subCollection:
{[key: string]: StaticSetFql[]}ドキュメントのサブコレクションを指定します。
keyでサブコレクション名を指定し、配列でサブコレクションに含まれるドキュメントを指定します。 この時、指定するドキュメントにidが含まれていない場合はランダムなドキュメント ID が割り振られます。optional id:
stringサブコレクションのドキュメントを指定する際、これを指定することでドキュメント ID を決めることができます。
例
{
fields: {
country: "Japan",
name: "Tokyo",
population: 35676000,
},
subCollection: {
users: [
// "/cities/Tokyo/users/adams"
{
id: "adams",
fields: {
name: "James Adams",
},
},
// "/cities/Tokyo/users/(Random ID)"
{
fields: {
name: "guest",
},
},
],
},
};
DynamicSetFql
StaticSetFql とは異なり、書き込み関数に渡す引数を受け取って書き込み内容を確定させることができます。
型 : (...args: any[]) => StaticSetFql
例
(tokyoPopulation) => ({
fields: {
country: "Japan",
name: "Tokyo",
population: tokyoPopulation,
}),
}
SetCollectionFql
型 : SetFql[]
例
[
(newPopulation, newWeather) => ({
fields: {
country: "Japan",
name: "Tokyo",
population: newPopulation,
weather: newWeather,
},
}),
{
fields: {
country: "United States",
name: "New York",
population: 19354922,
},
},
];