2016-06-01 80 views
9

我打算將我的本地和在線數據庫切換到Firebase作爲我的Android應用。根據文檔,Firebase首先存儲對本地數據庫的更改,然後在網絡可用時將其推送到在線數據庫。Android中Firebase本地數據庫的安全性如何?

在我的應用程序中,我會在數據庫中放入一些關於用戶的非常敏感的數據。所以這是我的問題,

  1. 本地Firebase數據庫的安全性如何?

  2. 對於一個善意的黑客來說用合適的工具來破解它有多困難?

  3. 它只是一個簡單的JSON文件,如聯機數據庫,任何具有超級用戶權限的人都可以打開?

謝謝。

+2

由於firebase文檔沒有說明其他任何內容,我會假設本地文件只是純文本數據庫文件。任何擁有根訪問權限的人都可以閱讀並提取所有數據。 BTW:如果數據非常敏感,您確定要將其以明文形式存儲在Firebase服務器上嗎? – Robert

+1

我已加密數據,但問題是我需要將加密密鑰存儲在數據庫中。這不是破壞目的嗎?這裏最好的方法是什麼? –

回答

2

從一般意義上說,Firebase實時數據庫可以在離線時使用。但是,預計應用程序應該大部分時間連接,並且在離線時發生的數據庫更改將在連接時同步。 100%的離線使用並不是真正支持的用例,因爲規範數據存儲位於服務器上。

數據庫的本地副本僅限於(10MB,至少在Android上是這種情況)。如果您打算在脫機狀態下寫入超出此限制的數據庫,它將逐出部分緩存數據,爲您添加的任何內容騰出空間。然後,您將無法再閱讀這些被驅逐的值,直到應用程序重新聯機爲止。更糟糕的是,管理越來越多的寫入操作,以便在返回在線時對應用程序徵稅,因此您不希望在離線時計劃大量寫入操作。

另外,如果您有爲數據庫定義的權限或驗證,則只能在服務器上檢查這些權限或驗證。因此,如果您正在離線寫入本地緩存並且不再有活動偵聽器,則可能永遠不知道這些寫入是否失敗。

由於存在這些警告,最好不要將Firebase實時數據庫視爲「脫機」數據庫。最好將其視爲一個「同步」數據庫,在連接存在時主動同步到服務器。

相關問題