在Android中不使用自动生成的密钥编写Firebase数据库

在Android中不使用自动生成的密钥编写Firebase数据库,android,firebase,firebase-realtime-database,firebase-security,Android,Firebase,Firebase Realtime Database,Firebase Security,我在我的android项目中使用Firebase,每个用户都会存储自己的详细信息,如姓名、电话号码、视频url、缩略图url等。现在我在以前的项目中使用Firebase的方式如图所示- 我没有使用Firebase自动生成的id/哈希,而是使用电子邮件id。这样对我来说比较容易。但有人告诉我,使用电子邮件而不是自动生成的哈希/ID是不安全的,建议使用哈希。所以问题是,为了方便起见,不使用哈希和使用电子邮件id真的不安全吗 此外,如果不安全,如果我们不将所有键值作为对象同时插入,那么在同一哈希下写

我在我的android项目中使用Firebase,每个用户都会存储自己的详细信息,如姓名、电话号码、视频url、缩略图url等。现在我在以前的项目中使用Firebase的方式如图所示-

我没有使用Firebase自动生成的id/哈希,而是使用电子邮件id。这样对我来说比较容易。但有人告诉我,使用电子邮件而不是自动生成的哈希/ID是不安全的,建议使用哈希。所以问题是,为了方便起见,不使用哈希和使用电子邮件id真的不安全吗

此外,如果不安全,如果我们不将所有键值作为对象同时插入,那么在同一哈希下写入不同键值对的推荐方法是什么


Firebase的推送ID通常用于在更传统的数据库中使用序列号的情况。Firebase推送ID并不意味着作为一种安全机制,因为它们没有包含足够的熵而无法使用。有关它们的更多信息,请参见此和

在电子邮件地址下存储数据也很常见


这两种方法都可以是安全的,也可以是非安全的,这取决于许多因素或应用程序的需要。如果有人告诉你你的数据结构不安全,我建议你问他们什么是不安全的

Firebase的推送ID通常用于在更传统的数据库中使用序列号的情况。Firebase推送ID并不意味着作为一种安全机制,因为它们没有包含足够的熵而无法使用。有关它们的更多信息,请参见此和

在电子邮件地址下存储数据也很常见


这两种方法都可以是安全的,也可以是非安全的,这取决于许多因素或应用程序的需要。如果有人告诉你你的数据结构不安全,我建议你问他们什么是不安全的

Firebase推送ID并不意味着作为一种安全机制,因为它们没有包含足够的熵而无法使用。在电子邮件地址下存储数据并不少见。这两种方法都可以是安全的,也可以是非安全的,这取决于许多因素或应用程序的需要。如果有人告诉你你的数据结构不安全,我建议你问问他们什么是不安全的。谢谢,我想这就解决了问题。那么使用Firebase自动生成的ID有什么好处呢?请参阅Firebase.googleblog.com/2015/02/the-2120-ways-to-sure-unique_68.html,并感谢您的帮助。我相信我可以简单地使用emails@frankvanpuffelen请不要使用emails作为密钥-最好的做法是将密钥(应该是静态的)与其包含的可变子数据解除关联。密钥无法更改,因此,例如,如果用户更新其电子邮件地址,您必须删除其主节点并重新写入,然后还要删除Firebase中对该节点的所有其他引用。将其保留为子节点意味着只需要更新一个节点;这是使用自动生成密钥的一个优点。Firebase推送ID并不意味着作为一种安全机制,因为它们不包含足够的熵而无法使用。在电子邮件地址下存储数据并不少见。这两种方法都可以是安全的,也可以是非安全的,这取决于许多因素或应用程序的需要。如果有人告诉你你的数据结构不安全,我建议你问问他们什么是不安全的。谢谢,我想这就解决了问题。那么使用Firebase自动生成的ID有什么好处呢?请参阅Firebase.googleblog.com/2015/02/the-2120-ways-to-sure-unique_68.html,并感谢您的帮助。我相信我可以简单地使用emails@frankvanpuffelen请不要使用emails作为密钥-最好的做法是将密钥(应该是静态的)与其包含的可变子数据解除关联。密钥无法更改,因此,例如,如果用户更新其电子邮件地址,您必须删除其主节点并重新写入,然后还要删除Firebase中对该节点的所有其他引用。将其保留为子节点意味着只需要更新一个节点;这是使用自动生成的关键点的一个优点。