如何将用户引导至其特定活动?

普拉卡什·库马尔

我正在构建一个应用程序,当用户第一次安装它时,在 MainActivity(Launcher Activity) 中,该应用程序会询问他是哪种类型的用户(假设是 Driver 还是 Rider)?基于用户选择,他被引导到相应的登录屏幕。用户登录后,他定向到 HomeActivity。如果他没有退出就关闭了应用程序,下次他打开应用程序时,他应该直接看到 HomeActivity(基于他选择的用户类型)。对于一位用户,MainActivity 中的代码类似于:

@Override
protected void onStart() {
    super.onStart();

    // Check if user is signed in (non-null) and update UI accordingly.
    FirebaseAuth mAuth = FirebaseAuth.getInstance();
    FirebaseUser currentUser = mAuth.getCurrentUser();
    if (currentUser != null) {
        sendToStart();

    }
}

private void sendToStart() {

    Intent startIntent = new Intent(MainActivity.this,DriverHomeActivity.class);
    startActivity(startIntent);
    finish();
}

我是 Android 和 Firebase 的新手。我不知道这应该如何为两种类型的用户完成。

彼得·哈达德

创建一个登录屏幕,在该屏幕中用户可以选择工作类型(两个按钮或单选按钮)。

如果他选择Driver,则在数据库中创建一个Driver节点,并使用他写的信息并将他定向到home活​​动:

FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Drivers").child(user.getUid());
ref.child("name").setValue(name);
Intent startIntent = new Intent(MainActivity.this,DriverHomeActivity.class);
startActivity(startIntent);
finish();

对 Rider 也做同样的事情。


如果用户在不注销的情况下关闭应用程序。在应该打开的第一个活动(例如:启动活动)中,检查是否有当前用户并检查用户类型:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 
DatabaseReference driver = FirebaseDatabase.getInstance().getReference().child("Drivers"); 
DatabaseReference rider = FirebaseDatabase.getInstance().getReference().child("Riders");

  if (user != null) {
    driver.child(user.getUid()).addListenerForSingleValueEvent(new ValueEventListener() { 
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) { 
                    Intent i = new Intent(SplashActivity.this, DriverHomeActivity.class);
                    startActivity(i);
                    finish();
                } else {
                    Intent intent = new Intent(SplashActivity.this, RiderHomeActivity.class);
                    startActivity(intent);
                    finish();
                  }
            @Override
          public void onCancelled(DatabaseError databaseError) {

               }
           });

在splash活动中,它会检查是否有当前用户(如果用户已登录)user.getUid()将返回当前用户ID,然后它会检查该用户ID是否在该Drivers节点下,然后将他定向到驱动程序的主页活动.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将用户在云计算公司的FireStore特定活动重定向?

如何将用户导航到其相关商店?

使用Node.js和Passport进行身份验证后,如何将用户重定向至带有其ID的主页?

如何将用户的活动存储在 Firestore 中?

如何将用户定向到页面的特定部分?

如果用户已经登录,如何将用户重定向到其主页?

如何将用户分配到组并使用Firestore参考字段类型对其进行排序

发送电子邮件后如何将用户发送到其他活动

如何将用户和机器人活动发布到对话中

如何将用户锁定到目录?

如何将用户关联到IPN

如何将用户变成员工?

将用户表单值插入特定列中的活动行

环回:如何将用户查询隔离到特定数据源?

如何将用户定义的变量值限制为jmeter中的特定线程组

注册失败后如何将用户重定向到特定页面?

如何将用户输入限制为已存储为变量的特定字符串?

登录/注册后如何将用户重定向到特定路由?

如何将用户输入的特定行打印到控制台 (C++)

如何将用户控件的属性绑定到MainViewModel并将其数据上下文绑定到其自己的ViewModel?

如何将用户提示(输入)存储到数组中并检索其最大值和最小值?

如何将用户名传递给Android Studio中的另一个活动

创建用户后,如何将用户与Django模型关联?

如何将用户放入超级用户文件?

在RecyclerView中刷新数据并保持其滚动位置将用户带到活动的顶部

Django:如何将用户与请求工厂关联

如何将用户添加到资格

如何将用户输入转换为字符串

如何将用户名显示为页面标题