こんにちわ、CROSSER開発者です
今回は初歩的(?)なミスで3時間悩まされた(検索しても記事もなく。。。)ことについて
みなさんに共有していきたいと思います
どなたかの参考になれば嬉しいです
事象
この様なDB構造で、documentにフィールドがない時にいくらcollection getしても
collectionのsizeが0でした。
collection/document/collection/
例えばこの様な構造です。
user/userId/userDetail/
userIdドキュメントにはフィールドなし
この時にCollection('user').get()をしてもドキュメントが複数あってもフィールドがないので、get()されるドュメントの数は0になってしまいます。
解決方法
フィールドを追加する。
ただ、単純にフィールドは追加できません。
なぜなら、Collection('user').get()で取得できるドキュメントがないからです。
今回、私たちはドキュメントIDを別のCollectionに保存していたため、
そのIDで直接ドキュメントを指定し、フィールドを追加していきました。
例)
set(userCollection.doc(userId),{セットしたいフィールド})
まとめ
- documentがあってもフィールドがなければCollectionのSizeが0になる
運用・保守の観点からもフィールドが不要なdocumentでも何かしらフィールドをつけていきたいと思います。
もしかしたら、公式サイトに書かれているかもしれませんが見つけきれなかったです
その他
語学マッチングアプリ『CROSSER』もよろしくお願いします。
評価もいただけると嬉しいです!
iOS/Androidモバイル対応
https://instabio.cc/crosser