android–firebase重复用户名和自定义登录

android–firebase重复用户名和自定义登录,第1张

概述参见英文答案>HowdoyoupreventduplicateuserpropertiesinFirebase?                                    2个我当前的firebase系统允许我使用firebasecreateuser()接收电子邮件和密码来注册新用户.在oncomplete方法中,我还会使用

参见英文答案 > How do you prevent duplicate user properties in Firebase?                                    2个
我当前的firebase系统允许我使用firebase createuser()接收电子邮件和密码来注册新用户.在oncomplete方法中,我还会使用用于注册的详细信息,以便将电子邮件和密码以及我创建的其他一些变量(如用户名和dob并使用以下代码将它们保存到firebase数据库:

// ...database code aboveDatabaseReference users = database.getReference("users"); User user = new User(username, password,dob,email); users.push().setValue(user);

>我需要立即检查,然后保存到数据库,如果用户名不是要求另一个用户名,则该用户名是唯一的
>我还实现了一个系统,当用户登录时,它检查字符串是否是电子邮件或用户名,如果用户使用电子邮件登录,那么它将使用firebase的系统登录,但如果他们使用用户名然后它必须检查firebase数据库以查看用户名是否存在,然后检查密码是否正确

我不知道如何做以上任何一项,非常感谢任何帮助.我已经使用了stackoverflow搜索并意识到有问题的帖子已经被问过了,我已经尝试了一些不起作用的解决方案,因为每个人的数据库结构都不同

解决方法:

让我关注目前的第一个问题.唯一的用户名.

在Firebase中进行更多检索的一个关键方面是构建数据.结构如何决定应用程序的功能效率.

对于唯一的用户名,我在您的Firebase数据库中建议了类似的内容.

在上面的数据库结构中,我为不可用的用户名创建了一个单独的节点(true,因为需要一些值).因此,每次我必须检查时,我都不必查看USERS节点的其他细节.

在您的应用程序中,您可以通过这种方式使用它来存储用户名.

FirebaseDatabase database = FirebaseDatabase.getInstance();DatabaseReference takennames = database.getReference("TakenUsernames");...//On Successful Registeration.takennames.child(username).setValue(true);

在注册时,您可以像这样检索该值:

public boolean doesnameExist(final String sUsername)    {theTakennameRef = database.getReference("TakenUsername");        theTakennameRef.addValueEventListener(new ValueEventListener() {            @OverrIDe            public voID onDataChange(DataSnapshot dataSnapshot) {                if(dataSnapshot.hasChild(sUsername))                {                    isTaken = true;                }                else if (!dataSnapshot.hasChild(sUsername))                {                    isTaken = false;                }            }            @OverrIDe            public voID onCancelled(DatabaseError databaseError) {                Toast.makeText(mContext, "Connection Error. Please try again in some time.", Toast.LENGTH_SHORT).show();            }        });        return isTaken;    }......//Calling it in methodString username = editText.getText().toString().trim().toupperCase();boolean exists = doesnameExist(username);if(exists){//Show Error}else{//Continue Registration}}

希望这可以清楚地检查唯一用户名的效率.

使用这种机制,你也可以把你的逻辑放在第二个问题上.

总结

以上是内存溢出为你收集整理的android – firebase重复用户名和自定义登录全部内容,希望文章能够帮你解决android – firebase重复用户名和自定义登录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1101618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存