質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

1376閲覧

モバイルアプリのWEB管理画面について

sheckwes

総合スコア13

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

1クリップ

投稿2020/02/26 03:15

編集2020/02/26 03:29

######実現したいこと
react native & expoでアプリを作成。
バックエンドはfirebase。
webの管理画面はLaravelで作成。

######懸念点
webの管理画面を実装できるかどうか。
管理画面では、ユーザー情報、商品情報(紐づくユーザーの取得、絞り込み検索などがあります。
商品が登録された日時、商品のカテゴリーでの並べ替えも実装したいです。
商品は1つのカテゴリーに属していてユーザーのidを持っているのですが、カテゴリー別での商品の取得、その商品に紐づくユーザーの取得など
firestoreでリレーションを取得するような機能が実装できるのかわかっていません。

一般的なアプリにはwebの管理画面がもちろんあると思うのですが、みなさんどのように実装しているのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Firestoreにはリレーション(参照)を保持するデータ型は存在しますが、データ取得時にそれらをJOINすることはできません。データの取得は、1つのコレクションに対して条件に合うドキュメントを取得することぐらいしかできないです。データの結合が必要なら、それぞれデータを取得した後に、自前で行う必要があります。

なのでFirestoreでは、各ドキュメントに必要な情報を冗長化(非正規化)して保持するのが一般的だと思います。
もしある商品やあるカテゴリと関連するユーザ一覧を取得したいなら、ユーザのドキュメントに商品IDのリストやカテゴリIDのリストを含めることで対応します。(もしくは、商品ドキュメントやカテゴリドキュメントのサブコレクションにユーザを追加する)

参考


別解:BigQueryを利用する

自分は使ったことがありませんが、FirestoreのデータをBigQueryにexportするとSQLのような複雑な集計ができるようです。PHPからも実行できそうし、Extensionを使うとリアルタイムにBigQueryにexportもできるっぽいです。


別解:RDBも併用する

Firestoreは複雑な検索や集計には向いていないです。すべてをFirestoreで完結させるのが難しいのであれば、RDBを併用することも一つの選択肢だと思います。参考になりそうな記事があったので載せておきます。

RDBとFirebaseのDB両方使ったっていいじゃない

もし、アプリ機能より、管理画面側の機能の方が主体なら、RDBのみを使って、Laravelでアプリ向けのAPIを提供する方が適切かもしれません


※ 正直、自分もFirestoreを使ったサービスを1つ作ってみた程度で、しかもまだ最低限の機能しかないので、回答してみたけど、あまり自信はないです。他の人の意見を聞いてみたいけど、あまりこの手の質問に真面目に回答してくれる人は少ないですかね...

投稿2020/02/26 20:50

popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sheckwes

2020/03/02 04:10

毎回ご回答いただきありがとうございます。 管理画面のcakephpはawsか何かで動かしていらっしゃるのでしょうか?
popobot

2020/03/02 04:16

はい、Firebaseとは関係ない別のサーバで動いていて、サービスアカウントでFirebaseにアクセスしています。
sheckwes

2020/03/02 08:40

なるほど、回答者様がおっしゃっているサービスアカウントとは サーバーに Firebase Admin SDK を追加する ということでしょうか?
popobot

2020/03/02 09:35

そうです
sheckwes

2020/03/02 10:38

ご回答いただきありがとうございます。 がんばってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問