2016-06-01 10 views
9

AndroidアプリのローカルデータベースとオンラインデータベースとしてFirebaseに切り替える予定です。ドキュメントごとに、Firebaseはローカルデータベースに変更を保存してから、ネットワークが利用可能になったらオンラインDBにプッシュします。AndroidのFirebaseローカルデータベースはどのように安全ですか?

私のアプリでは、データベースに関するユーザーの重要なデータを入れています。だからここに私の質問は

  1. 、あるローカルFirebaseデータベースはどのように安全ですか?

  2. 適切なツールを使って善意のハッカーがハックするのはどれくらい難しいですか?

  3. オンラインアクセスのユーザーは誰でもオープンできる、単純なJSONファイルですか?

ありがとう。

+2

Firebaseのドキュメントには何も記載されていないため、ローカルファイルは単に平文データベースファイルであると仮定します。誰でもrootアクセス権を持っていれば、それを読んですべてのデータを抽出することができます。 BTW:データが非常に敏感な場合は、Firebaseサーバに平文で保存してもよろしいですか? – Robert

+1

私はデータを暗号化しましたが、問題は暗号化用の鍵をデータベースに格納する必要があることです。目的を破るものではないのですか?おそらく最善の方法は何でしょうか? –

答えて

2

一般的に、Firebaseリアルタイムデータベースはオフラインで使用できます。ただし、ほとんどの場合、アプリケーションは接続されているはずで、オフラインの間に発生するデータベースの変更は、接続時に同期されることが期待されます。正式なデータストアがサーバー上にあるため、100%オフラインでの使用は実際にはサポートされている使用例ではありません。

データベースのローカルコピーは、少なくともAndroidの場合は(10MB)に制限されています。オフラインでこの制限を超えてデータベースに書き込もうとすると、キャッシュされているデータの一部が削除され、追加しているものの容量を確保します。その後、アプリがオンラインに戻るまで、削除された値を読み取ることはできなくなります。さらに悪いことに、オンラインで戻ってきたときに適用する書き込みのリストを管理することで、アプリに課税しているので、オフラインで多くの書き込みを計画したくない。

また、データベースに対して許可または検証が定義されている場合は、サーバー上でのみ確認できます。したがって、ローカルキャッシュにオフラインで書き込みを行い、リスナーがアクティブでなくなった場合、書き込みが失敗するかどうかは決して分かりません。

Firebase Realtime Databaseを「オフライン」データベースとはみなさないようにしてください。接続が存在している間は、サーバーと積極的に同期する「同期」データベースと考える方がよいでしょう。

関連する問題