java - firebase 在家庭 Activity 内切换 Activity 时导航到登录 Activity

标签 java android firebase

我已完成 Firebase 身份验证,该身份验证可登录用户并将其导航至 HomeActivity。这是可行的,但是当我尝试从主 Activity 移动到下一个 Activity 时,它会将我导航回主 Activity (在本例中为登录)。

public class HomeActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btnSearch;
    private TextView welcomeLbl;
    private Button btnSignout;

    FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        btnSearch = (Button) findViewById(R.id.btnSearch);
        welcomeLbl = (TextView) findViewById(R.id.welcomeLbl);
        btnSignout = (Button) findViewById(R.id.btnSignout) ;

        btnSearch.setOnClickListener(this);
        btnSignout.setOnClickListener(this);

        mAuth = FirebaseAuth.getInstance();

        if (mAuth.getCurrentUser() == null) {

            Intent signInIntent = new Intent(HomeActivity.this, MainActivity.class);
            startActivity(signInIntent);
            finish();

        } else {

            welcomeLbl.setText("You are logged in!");
        }
    }

    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btnSearch:
                Intent intent = new Intent(HomeActivity.this, SearchActivity.class);
                startActivity(intent);

            case R.id.btnSignout:
                mAuth.signOut();
                Intent signInIntent = new Intent(HomeActivity.this, MainActivity.class);
                startActivity(signInIntent);
                finish();
        }
    }
}

“我的注销”按钮的情况有效,因为它会按预期注销并导航回“登录” Activity ,但“搜索”按钮也会执行相同的操作,而它应该导航到“搜索 Activity ”。

这是我的搜索 Activity :

public class SearchActivity extends AppCompatActivity {

    private EditText searchField;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search);

        searchField = (EditText) findViewById(R.id.searchField);

    }
}

最佳答案

尝试在 switch options 语句中添加中断,如果不添加中断,代码将继续以 fall through 的形式执行。 ,当您希望一个选项执行另一选项的操作时。

case R.id.btnSearch:
            Intent intent = new Intent(HomeActivity.this, SearchActivity.class);
            startActivity(intent);
            break;

        case R.id.btnSignout:
            mAuth.signOut();
            Intent signInIntent = new Intent(HomeActivity.this, MainActivity.class);
            startActivity(signInIntent);
            finish();
            break;

关于java - firebase 在家庭 Activity 内切换 Activity 时导航到登录 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709027/

相关文章:

java - Eclipse - 设置为编译器 1.6 以避免 @Override 错误不起作用?

Android Firebase 如何获取父节点的所有子节点值?

ios - Firebase 登录用户在 segue 之前加载速度不够快

android - 如何在 Android Studio 中正确更改现有项目名称?

ios - 使用 Facebook 好友填充桌面 View

java - 如何让每个相同字符的计数仅显示一次?

java - 在Java/Swing中,ButtonModel的isRollover()和isArmed()方法有什么区别?

Java + Hibernate - 将带有值的查询打印到控制台

java - 计时器在启动时创建一个新窗口

c# - Xamarin.UI 测试 NU1201 错误 : Android 8. 1 与 .NET Framework 4.6.1 不兼容