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:验证电话号码时“发生内部错误。原始服务器响应”的主要内容,如果未能解决你的问题,请参考以下文章