我正在尝试实现 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/