Firebase phonenumber在注册后登录

时间:2018-05-30 13:59:12

标签: java android firebase google-signin phone-number

我正在开发一个使用Java在Android Studio中制作的项目,我发现了一些问题,即使应用程序重新启动,我如何将签名存储在凭证中供以后使用。

使用SharedPrefferences可以存储一些值供以后使用,但不幸的是,它不可能只放置一个对象字符串,布尔值,整数,浮点数,长整数和字符串集。

凭证变量来自函数

public void onVerificationCompleted(PhoneAuthCredential credential) 
{ 
  mAuth.signInWithCredential(credential) // where mAuth is FirebaseAuth
}

当用户首次注册其电话号码并获取验证码时,即可完成此过程 在某种程度上,我找到了这种情况的解决方法,我希望用户登录某些活动,但这需要电子邮件和密码,我只想保留电话号码,不需要其他类型的使用电子邮件和密码注册。

使用电子邮件和密码登录的代码可以正常使用

    FirebaseAuth.getInstance().signInWithEmailAndPassword(
            your_email, your_password).addOnCompleteListener(new OnCompleteListener<AuthResult>(){
        @Override
        public void onComplete(Task<AuthResult> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "firebase auth success");
                requestLocationUpdates();
            } else {
                Log.d(TAG, "firebase auth failed");
                Log.e(TAG, "onComplete: Failed=" + task.getException().getMessage());
            }
        }
    });

2 个答案:

答案 0 :(得分:3)

调查序列化 - 查看是否可以序列化PhoneAuthCredential,然后您就可以将其存储为JSON字符串。

您使用的Java库是Google的gson库:A Java serialization/deserialization library to convert Java Objects into JSON and back

注意:并非所有对象都可以使用gson轻松序列化,在某些情况下可能需要创建自定义gson序列化程序。

答案 1 :(得分:0)

有很多方法可以在SharedPrefferences中存储对象,但从我的角度来看,这是最好的方法。

您可以转换JSON格式的对象数据,之后您可以将JSON数据存储为SharedPrefferences中的字符串。 示例:

String tripPlan = new Gson().toJson(childData);

注意:childData是一个类对象。