【Firebase】 Realtime Database 実装時に詰まった箇所(DB設計編)
概要
Androidアプリ ツケ台帳 を作る際にFirebase realtimedatabaseを初めてさわったのですが、
特に詰まった部分を、備忘録かねて初心者的な目線でメモしてみます(DB設計編)
アプリの解説、過去の投稿は→こちら
スクリプト編もあります→スクリプト編
詰まりポイントと解決方法
key名の付け方
末端のkey名は小文字にする必要があるようです。
大文字でもDB設計できてしまいますが、スクリプト内で setValue(key)
する際にkeyの文字列が全て小文字として認識されるようです。
keyとvalue
DBからデータを読み出す場合は末端のデータを抜き出す場合以外、基本的にkeyで検索するのでデータ作成時のkeyのつけ方は重要です。
私は以下のように場合分けして実施していました。
・データの順番が重要な場合(例:掲示板への投稿メッセージのようなデータなどで、投稿順で並べ替えて表示したい場合)
:push()
でkeyを自動生成する。
時系列になるように生成してくれるので管理が楽です。
・データの順番が重要でない場合(例:グループに所属するユーザのデータなどで、特にユーザ間に優劣がない場合)
:key = valueとする。
検索の際、valueの値でもkeyの値でも検索できるので楽。
以上です。