Firebase,是否可以将verifyPhoneNumber置于活动之外而不传递活动参考?

时间:2017-06-23 21:22:45

标签: java android firebase firebase-authentication phone-number

我正在尝试实施Firebase电话号码身份验证。官方文档说我需要打电话

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

并传递我的活动参考以进行回调绑定。

docs中还有另一个重载方法,它接受TaskExecutors.MAIN_THREAD(Executor用于调用OnVerificationStateChangedCallbacks回调),而不是活动引用。

这就是我所需要的。在这种情况下

phoneAuthProvider.verifyPhoneNumber(
        phone,
        1,
        TimeUnit.MINUTES,
        TaskExecutors.MAIN_THREAD,
        callbacks,
        resendingToken
);

代码完美无缺。但问题是:回调在无限长的背景下继续他们的工作。我没有在文档中找到任何方法来阻止这些回调。

那么,当我不再需要它们时,如何手动删除这些回调呢?

1 个答案:

答案 0 :(得分:0)

我认为您可以改用TaskExecutors.MAIN_THREAD。

PhoneAuthProvider.getInstance().verifyPhoneNumber(
    phoneNumber, // Phone number to verify
    60, // Timeout duration
    TimeUnit.SECONDS, // Unit of timeout
    TaskExecutors.MAIN_THREAD, // Executor
    verifyNumberCallback
)