Firebase 电话号码在注册后登录



我正在用 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());
}
}
});

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

您将使用的Java库是Google的gson库:一个Java序列化/反序列化库,用于将Java对象转换为JSON并返回

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

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

将对象数据转换为 JSON 格式,然后将 JSON 数据存储为字符串存储在共享首选项中。 例:

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

注意:childData是一个类对象。

最新更新