FirebaseデータベースはJSONのサブセットを使用します。したがって、JSONスキーマを使用してデータモデルを記述することは明らかです。これにより、HTMLフォームまたはタイプスクリプトモデルを生成するツールを使用したり、ランダムなテストデータを生成したりすることができます。モデルFirebaseリアルタイムデータベース(JSONスキーマ)
私の質問:キーがIDであるJSONスキーマでキーと値のペアをモデル化するにはどうすればよいですか?
例:(firebase specから借用)
{
"users": {
"mchen": {
"name": "Mary Chen",
// index Mary's groups in her profile
"groups": {
// the value here doesn't matter, just that the key exists
"alpha": true,
"charlie": true
}
},
...
ここでグループ名は、グループIDとして使用されます。この参照(グループオブジェクト)とグループオブジェクト自体では、idがプロパティ名として使用されます。上記の例のための
JSONスキーマは次のとおりです。私は、例えば必要があるだろう何
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"users": {
"type": "object",
"properties": {
"mchen": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"groups": {
"type": "object",
"properties": {
"alpha": {
"type": "boolean"
},
"charlie": {
"type": "boolean"
}
}
}
}
}
}
}
}
}
はNAME
は、プロパティ名のプレースホルダで、NAME_TYPE
はそれがタイプだ定義し、以下のようなものです。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"users": {
"type": "object",
"properties": {
NAME: {
"type": "object",
NAME_TYPE: "string",
"properties": {
"name": {
"type": "string"
},
"groups": {
"type": "object",
"properties": {
NAME: {
NAME_TYPE: "string"
"type": "boolean"
}
}
}
}
}
}
}
}
}
(たぶん私はここに完全に間違ったパスの午前または多分JSONスキーマは、必要な構造をモデル化することができません。)
提供したJSON構造にはkey:valueのペアがあります。あなたは「火の柱の中の共通点」の意味を詳しく説明できますか?私はあなたの質問に答えるのに役立つかもしれません。 – Jay
普通のJSONではリストを配列として整理します: '' groups ':{{' id ':1、' name ':' alpha '、...}、{' id ':2、' name ':' charlie '、...}] '。ファイヤーベースでは、配列はありません。 '' group1 ':{' name ':' alpha '、...}、' group2 ':{' name ':' charlie '、...}}リストを整理することをお勧めします。 '。 (上記参照) – Simon
Firebaseには確かに配列があります。しかし、JSONストアの一般的なことは、配列の個々のコンポーネントが直接アクセスできない可能性があり、キー:値のペアと自動生成されたIDを活用する方がずっと柔軟性があるためです。 – Jay