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

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

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

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

Cloud Firestore

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

Q&A

解決済

2回答

403閲覧

firestore 設計について

Flugeln

総合スコア0

Firebase

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

Cloud Firestore

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

0グッド

0クリップ

投稿2020/08/10 02:55

現在firestoreの勉強をしております。
試しに、簡単な掲示板のようなサービスの設計をしてみたのですが、分からないところがあり、質問させて頂きます。

仕様としては簡単ですが、以下です
・ログインユーザーは掲示板に投稿することができる
・投稿の際、アカウントは匿名か、公開かを選べることができる
・投稿に対して、コメントをすることができる
・投稿が匿名でなければ、アイコンクリックでアカウント画面に遷移することができる
・投稿、コメントは自分であれば削除することができる

質問内容としては以下です。
匿名投稿の場合、postsのisAnonymousをtrueにして、
userNameには"匿名"を挿入して、表示しようと思ったのですが、
よく考えたら、投稿一覧を取得したときに、postsのuserIdが取得できてしまうので、
投稿主を特定できてしまう恐れがあるかなと思ってしまったのですが、
どういう設計をすればよいかを教えていただきたいです。

現在の設計は以下です。
インデントは階層を表してます

users: #ユーザー情報 documentID: {uid} name: string iconURL: string profile: string postCount: number createdAt: timestamp posts: #投稿 documentID: random userId: string #削除判定に使用 userName: string userIconURL: string content: string isAnonymous: boolean #匿名かどうか createdAt: timestamp comments: #コメント documentID: random userId: string #削除判定に使用 content: string createdAt: timestamp

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

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

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

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

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

guest

回答2

0

自己解決

いい案が思い浮かばなかったため、完全匿名な掲示板にしようと思います。

投稿2020/08/12 14:51

Flugeln

総合スコア0

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

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

0

userIdがdataになかったとしても、postsをusersのサブコレクションにしている時点でuidはわかってしまうような気がします。
なので本当に匿名化したければpostsをusersから独立させないといけないのかと思いました。

削除機能については、usersの下に削除可能なpostsIdを格納するサブコレクションを作って本人のみが参照できるようにし、セキュリティルールでget,exists等使えば実現できなくはないかなと思いましたが、正直あまりいいやり方は思い浮かばなかったです。

投稿2020/08/11 07:05

aaharu

総合スコア441

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

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

Flugeln

2020/08/11 10:20

回答ありがとうございます! たしかにuidが特定できてしまう恐れありますね・・・ もうちょっと考えますが、いい案が思い浮かばなかったら、 完全匿名にして、アカウント画面へは自分しかいけないようなセキュリティルールにしようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問