如何在 Android Studio 中使用 Firebase 自动登录?

我正在为会员和非会员创建一个餐厅应用程序。主页由 3 个按钮组成 - 菜单、登录和注册。我想让非会员在点击菜单按钮时自动登录(默认电话 ID)进入系统,会员每次只需登录或注册。


我尝试使用 sharedPreferences(默认 phoneId)进行非会员自动登录,但我不知道默认 phoneId 是否可以与 firebase 同步。我想跟踪非会员的交易订单。有没有办法只让默认的phoneId有自动登录功能?


p/s 我只是一个初学者,正在为我的项目做这个应用程序。请帮助谢谢。


主活动.java


public class MainActivity extends AppCompatActivity {


Button btnSignIn, btnSignUp, btnMenu;

public AppPreferences appPreference;



@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    appPreference = new AppPreferences(this);


    btnMenu = (Button)findViewById(R.id.btnMenu);

    btnSignUp = (Button)findViewById(R.id.btnSignUp);

    btnSignIn = (Button)findViewById(R.id.btnSignIn);




    btnMenu.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {


            Intent home = new Intent(MainActivity.this, Home.class);

            //Here save user info to preferences

            appPreference.setUserPhoneId(Constant.DEFAULT_PHONE_ID);

            appPreference.setUserPassword(Constant.DEFAULT_PASSWORD);

            startActivity(home);



        }

    });


    btnSignUp.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {


            Intent signUp = new Intent(MainActivity.this, SignUp.class);

            startActivity(signUp);

        }

    });


    btnSignIn.setOnClickListener(new View.OnClickListener() {

        @Override

        public void onClick(View view) {


            Intent signIn = new Intent(MainActivity.this, SignIn.class);

            startActivity(signIn);

        }

    });

}


四季花海
浏览 284回答 2
2回答

慕仙森

整个方法相当有问题,因为有一个匿名身份验证提供程序,它应该用于那些“非成员”(也可以与安全规则一起使用)。存储身份验证的状态Preferences很容易出错,因为它没有考虑身份验证的实际状态 -access denied一旦令牌过期,这将导致。我也看到了你之前的问题,但整个业务逻辑是有缺陷的。...最好参见AccountManager,了解如何在 Android 上正确存储帐户。

慕婉清6462132

你需要做这样的事情,MainActivity-> SignIn-> 如果登录成功 -> 下次启动应用程序时登陆HomeActivity尝试这个,1.) 首先,您定义一个新的boolean首选项键,USER_LOGGED_IN并在您的类中创建setUserLoggedIn()和getUserLoggedIn()方法AppPreferences如下。    private static final boolean USER_LOGGED_IN = false;     public static void setUserLoggedIn(boolean value) {                String TAG = "AppPref:setUserLoggedIn";        try{            editor.putBoolean(USER_LOGGED_IN, value);            editor.commit();        } catch (Exception e) {            Log.e(TAG, String.valueOf(e));        }     }    public static boolean getUserLoggedIn() {        return sharedPreferences.getBoolean(USER_LOGGED_IN, false);           }2.) 然后,在您的SignIn活动中,如果登录成功,将 UserLoggedIn 设置为true您的sharedPreferences.3.) 最后,在你的MainActivity,override onResume()方法如下,@Overrideprotected void onResume() {    super.onResume();    boolean userLoggedIn = AppPreferences.getUserLoggedIn();    if(userLoggedIn){        MainActivity.this.startActivity(new Intent(getApplicationContext(), Home.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));    }}试试这个,让我知道你的反馈。谢谢!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java