Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用getUID或getEmail向firebase中的用户发送电子邮件_Android_Firebase_Google Cloud Firestore_Firebase Authentication - Fatal编程技术网

Android 使用getUID或getEmail向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

我正试图找出让用户留在firebase中的正确方法。我的应用程序中的每个用户都必须使用电子邮件。我看到人们使用:

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作为索引。它是用于安全规则的黄金标准,在整个文档中都推荐:

我在我的博客中对此进行了讨论:


我建议不要使用电子邮件。