我在将Fabric-Digits和Firebase集成到我的Android应用程序时遇到了麻烦。
使用数字验证用户的电话号码。
使用Firebase作为基本的后端服务(Auth,数据库,应用邀请和FCM)。
以下是我如何使用Digits进行身份验证,然后使用Firebase进行身份验证
UILabel
此处的问题是,authConfigBuilder = new AuthConfig.Builder()
.withAuthCallBack(new AuthCallback() {
@Override
public void success(DigitsSession session, String phoneNumber) {
phoneVerified(phoneNumber);
}
@Override
public void failure(DigitsException error) {
error.printStackTrace();
}
});
// on a button click
AuthConfig authConfig = authConfigBuilder.withPhoneNumber(phone).build();
Digits.authenticate(authConfig);
private void phoneVerified(String phoneNumber) {
// authenticate with firebase using a dummy email/password
String email = phoneNumber + "@domain.io"
String password = "MyDomain@123"
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(activity, task -> {
// this is never called.
}).addOnFailureListener(e -> {
// this is also never called.
e.printStackTrace();
});
}
和OnCompleteListener
都未被调用,尽管用户已成功通过身份验证,我可以在Firebase控制台中看到该电子邮件!
值得一提的是,当我删除数字身份验证行并立即验证手机输入时,问题就会消失,一切都按预期工作。
此外,在验证phoneNumber后尝试清除Digits会话,但没有运气!