使用firebase进行Android登录和存储

使用firebase进行Android登录和存储,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我是android编码的初学者。我想为我的应用程序创建一个登录页面。我使用Firebase作为我的后端服务器。使用Firebase提供的身份验证服务,我能够成功创建用户。但是,正如我们所知,用户必须在应用程序安装时输入登录凭据。所以,有人建议我如何在android中开发这一部分,它在应用程序安装时获取凭据,并将其存储在本地,这样用户就不必在启动应用程序的所有时间都输入凭据。 提前谢谢大家 有几种方法可以在本地存储用户信息。但我认为在您的情况下,使用SharedReference将是最好的解决方案

我是android编码的初学者。我想为我的应用程序创建一个登录页面。我使用Firebase作为我的后端服务器。使用Firebase提供的身份验证服务,我能够成功创建用户。但是,正如我们所知,用户必须在应用程序安装时输入登录凭据。所以,有人建议我如何在android中开发这一部分,它在应用程序安装时获取凭据,并将其存储在本地,这样用户就不必在启动应用程序的所有时间都输入凭据。
提前谢谢大家

有几种方法可以在本地存储用户信息。但我认为在您的情况下,使用
SharedReference
将是最好的解决方案

我假设您已经用
FireBase
初始化了所有相关内容,然后首先我们需要检查我们的用户是否在之前登录。要检查它,我们将使用
SharedReferences

@Override
public void onCreate() {
    super.onCreate();
    Firebase.setAndroidContext(this);
    // other setup code
    SharedPreferences mPrefs = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    if (mPrefs.getBoolean("is_logged_before",false)) {
        Intent i = new Intent(this, HomeActivity.class);
        startActivity(i);
    } else {
        // continue to login part
    }
}
@Override
public void onSuccess(Map<String, Object> result) {
    System.out.println("Successfully created user account with uid: " + result.get("uid"));
    mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString("userId", result.get("uid"));
    editor.putBoolean("is_logged_before",true); //this line will do trick
    editor.commit();
}
然后,如果您成功注册/登录到
FireBase
,则应将您的用户信息保存到
SharedReferences
。FireBase应有
onSuccess
功能,用于监听您的登录请求的结果。因此,只需将用户信息和其他相关信息本地保存到
SharedReferences

@Override
public void onCreate() {
    super.onCreate();
    Firebase.setAndroidContext(this);
    // other setup code
    SharedPreferences mPrefs = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    if (mPrefs.getBoolean("is_logged_before",false)) {
        Intent i = new Intent(this, HomeActivity.class);
        startActivity(i);
    } else {
        // continue to login part
    }
}
@Override
public void onSuccess(Map<String, Object> result) {
    System.out.println("Successfully created user account with uid: " + result.get("uid"));
    mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString("userId", result.get("uid"));
    editor.putBoolean("is_logged_before",true); //this line will do trick
    editor.commit();
}
@覆盖
成功时的公共无效(映射结果){
System.out.println(“成功创建了uid为:+result.get(“uid”)的用户帐户);
mPrefs=mContext.getSharedReferences(“myAppPrefs”,Context.MODE\u PRIVATE);
SharedReferences.Editor=mPrefs.edit();
editor.putString(“userId”,result.get(“uid”);
putBoolean(“is_logged_before”,true);//这行就可以了
commit();
}

有几种方法可以在本地存储用户信息。但我认为在您的情况下,使用
SharedReference
将是最好的解决方案

我假设您已经用
FireBase
初始化了所有相关内容,然后首先我们需要检查我们的用户是否在之前登录。要检查它,我们将使用
SharedReferences

@Override
public void onCreate() {
    super.onCreate();
    Firebase.setAndroidContext(this);
    // other setup code
    SharedPreferences mPrefs = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    if (mPrefs.getBoolean("is_logged_before",false)) {
        Intent i = new Intent(this, HomeActivity.class);
        startActivity(i);
    } else {
        // continue to login part
    }
}
@Override
public void onSuccess(Map<String, Object> result) {
    System.out.println("Successfully created user account with uid: " + result.get("uid"));
    mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString("userId", result.get("uid"));
    editor.putBoolean("is_logged_before",true); //this line will do trick
    editor.commit();
}
然后,如果您成功注册/登录到
FireBase
,则应将您的用户信息保存到
SharedReferences
。FireBase应有
onSuccess
功能,用于监听您的登录请求的结果。因此,只需将用户信息和其他相关信息本地保存到
SharedReferences

@Override
public void onCreate() {
    super.onCreate();
    Firebase.setAndroidContext(this);
    // other setup code
    SharedPreferences mPrefs = getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    if (mPrefs.getBoolean("is_logged_before",false)) {
        Intent i = new Intent(this, HomeActivity.class);
        startActivity(i);
    } else {
        // continue to login part
    }
}
@Override
public void onSuccess(Map<String, Object> result) {
    System.out.println("Successfully created user account with uid: " + result.get("uid"));
    mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = mPrefs.edit();
    editor.putString("userId", result.get("uid"));
    editor.putBoolean("is_logged_before",true); //this line will do trick
    editor.commit();
}
@覆盖
成功时的公共无效(映射结果){
System.out.println(“成功创建了uid为:+result.get(“uid”)的用户帐户);
mPrefs=mContext.getSharedReferences(“myAppPrefs”,Context.MODE\u PRIVATE);
SharedReferences.Editor=mPrefs.edit();
editor.putString(“userId”,result.get(“uid”);
putBoolean(“is_logged_before”,true);//这行就可以了
commit();
}

当用户登录时,Firebase已将会话(在SharedReferences中)令牌持久化,因此您无需自己执行此操作

相反,你应该这样做。根据该文件:

Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.addAuthStateListener(new Firebase.AuthStateListener() {
    @Override
    public void onAuthStateChanged(AuthData authData) {
        if (authData != null) {
            // user is logged in
        } else {
            // user is not logged in
        }
    }
});
Firebase ref=新的Firebase(“https://.firebaseio.com");
ref.addAuthStateListener(新的Firebase.AuthStateListener(){
@凌驾
AuthStateChanged上的公共无效(AuthData AuthData){
if(authData!=null){
//用户已登录
}否则{
//用户未登录
}
}
});

当用户登录时,Firebase已将会话(在SharedReferences中)令牌持久化,因此您无需自己执行此操作

相反,你应该这样做。根据该文件:

Firebase ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.addAuthStateListener(new Firebase.AuthStateListener() {
    @Override
    public void onAuthStateChanged(AuthData authData) {
        if (authData != null) {
            // user is logged in
        } else {
            // user is not logged in
        }
    }
});
Firebase ref=新的Firebase(“https://.firebaseio.com");
ref.addAuthStateListener(新的Firebase.AuthStateListener(){
@凌驾
AuthStateChanged上的公共无效(AuthData AuthData){
if(authData!=null){
//用户已登录
}否则{
//用户未登录
}
}
});

使用
SharedReferences
跟踪用户登录状态。遵循->尝试此github代码…..尝试此。。。。使用
SharedReferences
跟踪用户登录状态。遵循->尝试此github代码…..尝试此。。。。