故事
我有一个Android应用程序,它严重依赖Firebase实时数据库。到目前为止,我使用它没有任何问题。
但是我需要在数据库中存储一些高度敏感的用户数据,我不想以纯文本形式这样做。
因此,我在将数据存储到数据库之前对其进行了加密。我可以在Firebase控制台中看到加密的字符串。
问题
我需要检查并验证我的本地设备中Firebase数据库如何在内部表示数据,因为我也在数据库中存储加密密钥。
我的数据库有setPersistenceEnabled()
,因此Firebase会在用户设备中本地存储这些数据。没有人提到Firebase内部如何做到这一点。它是将它存储为JSON文件还是SQLite数据库(最有可能)。
我的尝试
为了深入研究问题,我尝试从我的应用程序中提取数据库。
我用过,
"adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"
在我的终端中获取我的应用程序的所有数据库名称列表,这就是我得到的,
app-debug-xxxx.firebaseio.com_default
app-debug-xxxx.firebaseio.com_default-journal
crash_reports
crash_reports-journal
那么,这些是我的数据库吗?它们是常规的SQLite数据库吗?假设它们是SQLite数据库,我无法从这些文件中读取数据。
我个人认为,了解数据如何在Android内部表示非常重要,这样我们才能做出更好的决策来存储我们的数据。
任何帮助都将受到高度赞赏?