Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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 如何使用firestore数据库和firebase身份验证创建登录方法_Android_Google Cloud Firestore_Firebase Authentication - Fatal编程技术网

Android 如何使用firestore数据库和firebase身份验证创建登录方法

Android 如何使用firestore数据库和firebase身份验证创建登录方法,android,google-cloud-firestore,firebase-authentication,Android,Google Cloud Firestore,Firebase Authentication,嗨,我正在制作一个带有注册页面的应用程序,用户在其中输入电子邮件、密码、共享密钥,然后是登录页面。使用firestore,我存储用户共享的秘密,效果很好。我还对电子邮件和密码使用firebase身份验证方法。我遇到的问题是在注册页面上使用firebase身份验证登录和EmailandPassword方法,我只能调用电子邮件和密码。我将如何检查用户的共享秘密以及电子邮件和密码 感谢您在使用基于电子邮件和密码的登录时提供的帮助,Firebase身份验证仅允许您使用该电子邮件和密码对对用户进行身份验证

嗨,我正在制作一个带有注册页面的应用程序,用户在其中输入电子邮件、密码、共享密钥,然后是登录页面。使用firestore,我存储用户共享的秘密,效果很好。我还对电子邮件和密码使用firebase身份验证方法。我遇到的问题是在注册页面上使用firebase身份验证登录和EmailandPassword方法,我只能调用电子邮件和密码。我将如何检查用户的共享秘密以及电子邮件和密码


感谢您在使用基于电子邮件和密码的登录时提供的帮助,Firebase身份验证仅允许您使用该电子邮件和密码对对用户进行身份验证。它没有共享秘密的概念。如果您想检查其他数据,您必须在用户登录后进行检查,并决定如果数据不匹配怎么办。

当使用基于电子邮件和密码的登录时,Firebase身份验证仅允许您使用该电子邮件和密码对对用户进行身份验证。它没有共享秘密的概念。如果您想检查其他数据,您必须在用户登录后进行检查,并决定如果数据不匹配怎么办。

我知道的最简单的方法是添加其他语句。我假设共享秘密保存在实时数据库中。在这种情况下,您需要调用该数据并将其与用户的输入进行比较:

FirebaseAuth auth;
DatabaseReference secretRef; //before onCreate
private String currentUserId;
现在是您的登录方法

final EditText sharedSecret = findViewById(R.id.sharedSecret); //find user input
auth = FirebaseAuth.getInstance();
currentUserId = mAuth.getCurrentUser().getUid();
secretRef = FirebaseDatabase.getInstance().getReference().child("User").child(currentUserId).child("sharedSecret");
final String checkedSecret = secretRef.toString();
然后您可以使用如下代码进行比较:

if(checkedSecret != sharedSecret)
{
//user is not login
}else{
//continue with login
}

祝你好运

我知道的最简单的方法就是添加额外的语句。我假设共享秘密保存在实时数据库中。在这种情况下,您需要调用该数据并将其与用户的输入进行比较:

FirebaseAuth auth;
DatabaseReference secretRef; //before onCreate
private String currentUserId;
现在是您的登录方法

final EditText sharedSecret = findViewById(R.id.sharedSecret); //find user input
auth = FirebaseAuth.getInstance();
currentUserId = mAuth.getCurrentUser().getUid();
secretRef = FirebaseDatabase.getInstance().getReference().child("User").child(currentUserId).child("sharedSecret");
final String checkedSecret = secretRef.toString();
然后您可以使用如下代码进行比较:

if(checkedSecret != sharedSecret)
{
//user is not login
}else{
//continue with login
}

祝你好运

那么这个过程会是一个类似于使用电子邮件登录页面和通行证的过程,它会在访问之前将你带到另一个页面,在那里你输入“共享机密”,并与该用户在firestore中已存储的机密进行核对,然后如果匹配登录?是的,差不多就是这样。基本上,一旦新用户输入了一个共享秘密值,您就可以检查该值是否与文档中的值匹配。如果匹配,您会在数据库中将它们标记为“已验证”(可能会清除共享机密)。因此,该过程类似于使用电子邮件登录页面并传递,在进入另一个页面之前,会将您带到另一个页面,在其中输入“共享机密”如果与该用户的firestore中已存储的内容相匹配,则会对其进行检查。是的,基本上就是这样。基本上,一旦新用户输入了一个共享秘密值,您就可以检查该值是否与文档中的值匹配。如果匹配,则在数据库中将它们标记为“已验证”(并可能清除共享机密)。谢谢,这似乎正是我需要的!不过,我在firestore中存储数据,而不是实时数据库谢谢,这似乎正是我需要的!但是,我将数据存储在firestore中,而不是实时数据库