我正在开发一个使用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());
}
}
});
答案 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
是一个类对象。