Firebase Auth Phone在用于生产时无法正常工作

时间:2017-06-09 10:41:03

标签: ios objective-c firebase firebase-authentication

所以我已经成功设置了Firebase Messaging,推送通知效果很好。但是,当我为手机添加Firebase Auth时,只有沙箱可以使用。以下是我的代码:

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    [[FIRAuth auth] setAPNSToken:deviceToken type:FIRAuthAPNSTokenTypeSandbox];
}

使用FIRAuthAPNSTokenTypeSandbox时,[[FIRPhoneAuthProvider provider] verifyPhoneNumber:phoneNumber ...]将起作用。但是,当我使用FIRAuthAPNSTokenTypeProd时,我将收到内部服务器错误。我已在Firebase控制台上上传了开发和生产证书,当用户通过Test Flight下载我的应用时,推送通知效果很好。

我的问题是为什么会这样,我怎么能解决它?我担心如果我继续使用沙箱,一些未来的用户将无法接收短信,但同时,制作不起作用。

我的另一个问题是,我是否可以本地化和自定义我的短信?我将这些代码发送给多个国家/地区的用户。

如果有人知道答案会很棒!提前谢谢!

1 个答案:

答案 0 :(得分:2)

回答第一个问题:

  
      
  1. 当我为手机添加Firebase Auth时,只有沙盒可以使用。
  2.         

    请记住,您正在使用的证书类型   分享构建,

- (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];

    }
  
      
  1. a)本地化:是的,你可以。
  2.   

[[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."