使用SMS检索器API替换Firebase电话身份验证以进行OTP验证

时间:2019-08-05 20:41:36

标签: android firebase firebase-authentication smsretriverapi

所以我是android开发的新手(这并不意味着我不理解其他人的代码,只是亲身体验),目前正在开发android应用。该应用程序是由前一个离开我最近被聘用的工作的人制作的。问题是,由于Google更新了其政策,不允许我们使用READ_SMS和RECEIVE_SMS之类的权限,因此前人制作的应用未获Google批准上传到Play商店。

我的问题是,有什么方法可以用SMS检索器API替换firebase身份验证,而最后使用firebase?还是有其他方法可以基于firebase发送的OTP来对用户进行身份验证,但没有RECEIVE_SMS或READ_SMS的权限?

当前,我已经签出了SMS Retriever,看起来很适合我们的应用程序,但是不知道我们是否仍然可以继续使用firebase。

2 个答案:

答案 0 :(得分:2)

您实际上不需要Android上用于Firebase Auth的SMS检索器API。它将自动读取SMS代码并初始化PhoneAuthCredential,然后通过onVerificationCompleted回调传递它以完成登录。

“自动检索:在某些设备上,Google Play服务可以自动检测传入的验证SMS并执行验证,而无需用户采取任何措施。(某些运营商可能无法使用此功能。)”

您还将获得即时验证的优势,甚至没有发送SMS。

您可以查看official docs了解更多信息。

答案 1 :(得分:0)

如果您想使用Firebase身份验证作为用户的注册表,那么您可以使用安全规则并与其他Firebase产品集成,但是要提供自己的机制来创建和验证这些用户,则需要实现自定义身份验证提供程序。这要求您提供自己的后端,以安全地完成所有身份验证工作。您将无法信任客户端应用程序(即使您编写了整个程序,因为它可能会受到损害),因此其安全性足以真正验证最终用户的声明。

整个过程太多,无法在单个堆栈溢出答案中进行解释,因此请read the documentation了解自定义身份验证的工作原理。