java - Firebase,是否可以将 verifyPhoneNumber 放在 Activity 之外而不将 Activity 引用传递给它?

标签 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

并为回调绑定(bind)传递我的 Activity 引用。

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

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

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

代码完美运行。但问题是:回调在后台无限长地继续工作。我没有在文档中找到任何方法来停止这些回调。

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

最佳答案

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

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

关于java - Firebase,是否可以将 verifyPhoneNumber 放在 Activity 之外而不将 Activity 引用传递给它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44730142/

相关文章:

java - Gradle拉取依赖时版本冲突

java - Spring事务日志已回滚但未回滚

android - 为什么我的应用在安装时请求媒体权限?

android - 如何编写代码为 android 中的数组创建共享首选项?

javascript - 如何根据 onUpdate 事件更新 bigquery 中的数据

ios - 如何使用 IBAction 将数据写入 Firebase

java - 如何通过Selenium认证进行测试?

java - java方法中需要分号

java - 如何修复 org.json.JSONException : on Volley?

javascript - 为什么仅使用 AngularFire 绑定(bind)到我的 View 的第一个元素?