用于生产时 Firebase Auth Phone 无法正常工作
Posted
技术标签:
【中文标题】用于生产时 Firebase Auth Phone 无法正常工作【英文标题】:Firebase Auth Phone not working when using for production 【发布时间】:2017-06-09 10:41:02 【问题描述】:所以我已经成功设置了 Firebase 消息,并且推送通知效果很好。但是,当我为手机添加 Firebase 身份验证时,只有沙盒可以工作。以下是我的代码:
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
[[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeSandbox];
使用 FIRAuthAPNSTokenTypeSandbox 时,[[FIRPhoneAuthProvider] verifyPhoneNumber:phoneNumber...] 将起作用。但是,当我使用 FIRAuthAPNSTokenTypeProd 时,我会收到内部服务器错误。我已经在我的 Firebase 控制台上上传了开发和生产证书,当用户通过 Test Flight 下载我的应用时,推送通知效果很好。
我的问题是为什么会这样,我该如何解决?我担心如果我继续使用沙盒,一些未来的用户将无法收到短信,但同时生产也无法工作。
我的另一个问题是,我能否本地化和自定义我的 SMS 消息?我将把这些代码发送给多个国家的用户。
如果有人知道答案,那就太好了!提前致谢!
【问题讨论】:
【参考方案1】:回答你的第一个问题:
当我为手机添加 Firebase 身份验证时,只有沙盒可以工作。
请记住,您在使用时使用的证书类型 共享构建,
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
// If you are using the development certificate you have to use this,
[[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeSandbox];
// If you are using distribution certificate you should use this
[[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeProd];
// If you want Firebase to automatically detect the type use this.
[[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeUnknown];
a) 本地化:可以。
[[FIRAuth auth] useAppLanguage];
参考:Firebase Phone Number Auth Document
b) Customize my SMS messages : No you can't.
As this may abuse the user experience. Got clarification from Firebase as "Those templates can't be edited, sorry. There is a good deal of concern that this service could be abused and used for spam and other bad practices."
【讨论】:
Firebase 外语短信模板的代码页错误。以上是关于用于生产时 Firebase Auth Phone 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Phone Auth 不会用我的代码向我发送短信
React-Native Firebase Phone Auth 冻结 iPhone