如何为Android Firebase电话验证设置回调函数?

4

我对Firebase和Android比较新,然后我看到了这个在Android上的新功能:Firebase手机认证。我正在查看这份文档Firebase Phone Auth,但是我对实现mCallbacks感到困惑...请问有人可以指导我吗?

PhoneAuthProvider.getInstance().verifyPhoneNumber(
                        phoneNum,
                        60,
                        TimeUnit.SECONDS,
                        this,
                        mCallbacks

这让我困惑的是,我不知道应该使用什么数据类型来分配那个回调函数。由于没有示例代码,我希望有人能够指导我。
4个回答

2
您应该使用PhoneAuthProvider.OnVerificationStateChangedCallbacks()。具体如下:
    PhoneAuthProvider.getInstance().verifyPhoneNumber(
            phoneNumber,        // Phone number to verify
            60,                 // Timeout duration
            TimeUnit.SECONDS,   // Unit of timeout
            this,               // Activity (for callback binding)
            new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
                @Override
                public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {

                }

                @Override
                public void onVerificationFailed(FirebaseException e) {

                }
            });

那么你可以只覆盖你需要的其他验证回调函数


它给我一个错误,无法解析verifyphonenumber。 - Coozgan
你是否有 Android Firebase PhoneAuth 的示例代码? - Coozgan
同样的错误也出现在我的电脑上。代码和上面一样。 - Alias
这里也出现了同样的错误:“没有找到适合的 verifyPhoneNumber 方法”。 - Thamaraiselvam

2
我相信这解决了我的问题。
submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String phoneNum = editText.getText().toString();
                Toast.makeText(MainActivity.this, phoneNum, Toast.LENGTH_SHORT).show();
                verifyPhone(phoneNum,mCallBacks);
            }

    });

我尝试创建一个处理按钮点击的方法,不知道为什么它能够运行...

 public void verifyPhone(String phoneNumber, PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks){
            PhoneAuthProvider.getInstance().verifyPhoneNumber(
                    phoneNumber,        // Phone number to verify
                    60,                 // Timeout duration
                    TimeUnit.SECONDS,   // Unit of timeout
                    this,               // Activity (for callback binding)
                    mCallbacks);        // OnVerificationStateChangedCallbac
        }

0

在方法verifyPhoneNumber中的TimeUnit.SECONDS出现了问题,您必须将导入的类TimeUnit替换为import java.util.concurrent.TimeUnit;


0

不要将“this”传递给verifyPhoneNumber(..)方法,尝试传递Activityname.this


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接