Android 使用getUID或getEmail向firebase中的用户发送电子邮件
我正试图找出让用户留在firebase中的正确方法。我的应用程序中的每个用户都必须使用电子邮件。我看到人们使用:Android 使用getUID或getEmail向firebase中的用户发送电子邮件,android,firebase,google-cloud-firestore,firebase-authentication,Android,Firebase,Google Cloud Firestore,Firebase Authentication,我正试图找出让用户留在firebase中的正确方法。我的应用程序中的每个用户都必须使用电子邮件。我看到人们使用: new_user.put("email", email); FirebaseUser user = mAuth.getCurrentUser(); if (user != null && user.getEmail() != null) { fireDB.collection("users").document(user.getEmail()).set(new
new_user.put("email", email);
FirebaseUser user = mAuth.getCurrentUser();
if (user != null && user.getEmail() != null) {
fireDB.collection("users").document(user.getEmail()).set(new_user);
}
fireDB.collection("users").document(user.getUID()).set(new_user);
另一方面,我看到人们使用:
new_user.put("email", email);
FirebaseUser user = mAuth.getCurrentUser();
if (user != null && user.getEmail() != null) {
fireDB.collection("users").document(user.getEmail()).set(new_user);
}
fireDB.collection("users").document(user.getUID()).set(new_user);
哪个更好
getUID()
或getEmail()
?为什么?不要使用电子邮件。使用UID。它永远不会更改,它正确区分大小写,不包含任何信息(因此可以安全地与其他用户共享),并且始终是Firebase API调用的有效密钥
还要记住,用户不能保证有电子邮件地址。特别是如果他们通过电话认证登录
如果这还不够,那么文档中提供的所有示例代码都使用UID作为索引。它是用于安全规则的黄金标准,在整个文档中都推荐: