Firebaseのデータベースのことについてはまだ何も書いていないのですが、その先でFirebaseにデータを持ってくる方法としてどういう流れがあるのかを試してみます。
Googleドキュメントは、複数人で同時に同じデータを編集するにはとても便利なサービスですね。ここに作り上げたデータをFirebaseに持っていくには、書き出した後、JSON形式にしてインポートする必要があります。いくつか方法はあると思いますが、とりあえずこんな方法でうまくいったのでMEMOしておきます。
スプレッドシート上にデータを作成。一番上の行はアルファベットでキー名を名付けておきます。ここがJSONの各キーになります。
「ファイル>形式を指定してダウンロード>カンマ区切りの値(.csv、現在のシート)」を選ぶと、csvファイルがダウンロードフォルダにダウンロードされます。
csvをjsonに変換する方法はたくさんあると思いますが、僕はこのユーティリティを使いました。
先ほどダウンロードしたcsvを選択して、fromをcsv、toをJSONにして「Convert」
各キーに対して型を細かく設定できますが、僕はたいていのものはStringにして、アプリの方で型変換しちゃいます。
OKを押してjsonファイルの保存先を指定して保存。
次にFirebaseの方でこのJSONをインポートしてみます。Firebaseのインポートは一見ややこしいのですが、「読み込みたい階層に移動してからその階層以下をごっそり読み込んだJSONで上書きする」と思っておけばいいと思います。ここが少し変わってるので、最初はわかりにくいですね。例えば、ルートにあるdata/questions以下の階層に読み込みたい場合、まず、「questions」部分をクリックして、その階層に入ります。
階層に入った後、「・・・」部分のメニューから「JSONをインポート」を選びます。
「閲覧」を押して、
先ほど作成したJSONファイルを選択。
「インポート」を押すと、その階層にあったデータがごっそり消えて、インポートしたJSONが読み込まれます。
では、存在していない階層に読み込みたい場合はどうするか。例えば、ルートにdataという階層を作って、そのdata以下に読み込んでみます。
下の例の場合、ルートで読み込んでしまうと、「users」という階層がなくなってしまいます。なので、いったん、dataという階層を作ります。「+」を押すとその階層に新しく階層を作れます。
名前に「data」と入れて、値は適当に「0」とか何か入れて作ればいいと思います。ここで「追加」を押してdata階層を作れば、その階層に入ることができます。(値の0というのはダミーのようなもんです)
data部分をクリックして、data階層に入ります。
ここでインポートを行えば、ダミーで入れた「0」は消えて、この階層にJSONデータが入ってきます。
JSON形式が正しく作成されていれば、「データが正常にインポートされました」というメッセージが出て、データが読み込まれていることも確認できます。(「#text」といった記号付きのキー名があったりするとエラーが出ますので注意です)
配列を読み込むと数値がキー名となったツリー構造となっていることが確認できます。開いてみると、Googleドキュメントのスプレッドシートの1行目をキー名としたデータが読み込まれていることが確認できると思います。
とりあえず、これで読み込めたので、Googleドキュメントの方を更新した場合、まったく同じプロセスでデータ変換、インポートすれば、いつでもこの場所のデータを更新できるでしょう(手動ですが。。)
東京造形大学卒業後、マクロメディア(現アドビ)に入社。QAやテクニカルサポートマネージャーとしてFlash、DreamweaverなどのWeb製品を担当。独立後、2007年に虫カゴデザインスタジオ株式会社を設立。2021年東京三鷹を拠点に。最近は、CakePHP、Laravel、Unity、ZBrush、Modo、Adobe Substance 3D、Adobe Firefly、Xcode、Firebaseにフォーカスしています。モバイルアプリ開発情報を主としたブログ「MUSHIKAGO APPS MEMO」の中の人。