为了账号安全,请及时绑定邮箱和手机立即绑定

检查用户是否是首次使用Firebase Auth和数据库登录Android应用程序

检查用户是否是首次使用Firebase Auth和数据库登录Android应用程序

海绵宝宝撒 2021-04-05 17:06:28
我正在制作一个聊天应用程序,我想要执行以下操作:启动MainActivity时,请检查用户是否已登录。否则,请启动FirebaseAuthUI。但是FirebaseAuth仅支持几个参数,并且要添加更多参数,我为每个用户创建了一个Database节点,该节点存储其他参数。为了获得此参数,在完成FirebaseAuth之后,将用户重定向到“活动”,该活动将获取所有额外信息并存储在数据库的用户节点中。所有这一切都很好。但是,当用户在此Info Activity中填写信息并完成注册后,它应返回MainActivity并停留在该位置。我怎样才能做到这一点?我正在这样尝试:我为每个用户添加了一个名为的布尔变量userCompleted,该变量通知用户是否已经提供了他们的信息。我检查此变量是否为false,如果是,则调用Info Activity意图,当用户按下按钮以完成此Activity中的注册时,它将userCompleted值设置true为Database中的用户节点,然后启动一个导致MainActivity的意图。问题是,在数据库中,userCompleted将其设置为true,然后立即返回到false,我不知道为什么。另外,我想我在userCompleted从数据库中读取时遇到了麻烦,可能是因为我在异步任务方面工作不多。我使用了isUserCompleted在Main Activity中声明的变量来跟踪userCompleted值。一种检查是否是用户首次登录的方法也很有用,尽管这并不能解决我的全部问题。
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

我认为最简单的方法是,如果用户单击完成Btn,则成功将其设置为true,否则将其设置为false


在你的 MainActivity


            firebase.auth().onAuthStateChanged(function(user) {


             // User signed in and not registered 

              if (user&&!isPressedOnFinishBtn) {

                // User is signed in.

              }

         user clicked on finish btn 

          else if(isPressedOnFinishBtn) {

                // No user is signed in.

              }

            });


查看完整回答
反对 回复 2021-04-14
  • 2 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信