firebase管理员:验证电话号码“发生内部错误。原始服务器响应”

时间:2018-07-08 10:39:18

标签: firebase firebase-authentication

我正在使用Firebase管理员创建新用户。该用户有电话号码。 当我填写这样的电话号码“ 7777777”时 我的Firebase管理员响应出现正确错误:

{ 
 Error: The phone number must be a non-empty E.164 standard compliant identifier string.
at FirebaseAuthError.FirebaseError [as constructor] 
 ...
 ...
errorInfo:
 { code: 'auth/invalid-phone-number',
   message: 'The phone number must be a non-empty E.164 standard 
   compliant identifier string.' 
 },
codePrefix: 'auth' }

但是,如果我填写这样的数字“ +7777777” 我的Firebase管理员回复:

{ Error: An internal error has occurred. Raw server response: 
"{"error":{"code":400,"message":"INVALID_PHONE_NUMBER : TOO_SHORT","errors":
[{"message":"INVALID_PHONE_NUMBER : TOO_SHORT","domain":"global","reason":"invalid"}]}}"
at FirebaseAuthError.FirebaseError [as constructor] ...
errorInfo:
 { code: 'auth/internal-error',
   message: 'An internal error has occurred. Raw server response: 
     "{"error":{"code":400,"message":"INVALID_PHONE_NUMBER : 
     TOO_SHORT","errors":
     [{"message":"INVALID_PHONE_NUMBER : 
     TOO_SHORT","domain":"global","reason":"invalid"}]}}"' 
 },
codePrefix: 'auth' }

为什么我有这个内部错误?以及如何避免呢?

更新: 我了解缺少国家/地区代码。问题是。为什么是内部错误?而不是“普通”错误?这2个错误之间有什么区别。

2 个答案:

答案 0 :(得分:1)

当您将Moile No传递到Firebase时,您需要在移动电话号码之前添加国家/地区代码号码。

Ex:

如果您所在的国家/地区是美国(国家/地区代码:+1),而您的电话号码是222-333-4444,则您需要发送+12223334444

您还可以使用美国测试号码来测试Firebase移动身份验证

下面是美国的测试编号和短信代码 phoneNumber:“ + 16505554567” smsCode:“ 123456”

请在https://firebase.google.com/docs/auth/android/phone-auth

阅读完整的详细信息

答案 1 :(得分:0)

我遇到了一些来自 Firebase 系统的奇怪错误。就我而言,我使用 Google 表格作为我们的数据存储。有人将电话号码从其他位置复制并粘贴到 Google 表格中。 Firebase 完全失败。

电话号码看起来正常,但我们认为可能存在一些奇怪的字符编码。当我们删除电话号码条目并手动输入号码时,一切正常。

我们的具体错误:

UnhandledPromiseRejectionWarning: Error: An internal error has occurred. Raw server response: "{"error":{"code":400,"message":"INVALID_PHONE_NUMBER : Invalid format.","errors":[{
"message":"INVALID_PHONE_NUMBER : Invalid format.","domain":"global","reason":"invalid"}]}}"