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

Posted

技术标签:

【中文标题】firebase admin:验证电话号码时“发生内部错误。原始服务器响应”【英文标题】:firebase admin: when validating phone number "An internal error has occurred. Raw server response" 【发布时间】:2018-07-08 10:39:17 【问题描述】:

我正在使用 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' 

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

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

【问题讨论】:

【参考方案1】:

当您将 moile no 传递给 firebase 时,您需要在手机号码前添加您的国家/地区代码。

例如:

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

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

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

请在https://firebase.google.com/docs/auth/android/phone-auth阅读完整详情

【讨论】:

我了解国家代码。问题是。为什么是内部错误?而不是“普通”错误?这两个错误有什么区别。 我可以毫无问题地发送格式化的电话号码phoneNumber: '+1 307 307-3007'【参考方案2】:

我在 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"]"

【讨论】:

以上是关于firebase admin:验证电话号码时“发生内部错误。原始服务器响应”的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Firebase 验证电话完成程序搞砸了

在 Firebase 中验证电话号码时出错(角度项目)

电话身份验证创建新帐户并断开 Firebase 上的链接

获取 Firebase 电话身份验证 OTP 时出错

Firebase 电话号码身份验证错误

Firebase 身份验证 Flutter 中的电话号码