【问题标题】:How can I format a local mobile phone number to a international one?如何将本地手机号码格式化为国际手机号码?
【发布时间】:2020-07-29 20:00:16
【问题描述】:

我正在使用用于颤振的 contact_service 包从设备中检索联系人。但我注意到,当我查看_contacts[index].phones 时,它可以是手机,也可以是其他手机。我只接受有手机号码的联系人。但是当我查看电话号码时,我发现它们都有不同的格式。

+31XXXXXXXX
+31 6 XXXXXXXX
06-XXXXXXXX
06 XXXXXXXX
6 XXXXXXXX
(045) XXXXXXXX
045 XXXXXXXX

旁注:我正在使用 google 帐户开发 android 模拟器

我希望它们都带有国家代码,以便我可以将它们与我的 firebase auth 电话号码进行比较。所以我的问题是我该怎么办?

我是否在客户端格式化联系人列表电话号码?还是我只是发送它并使用云功能以某种方式解决?我该怎么做?

【问题讨论】:

    标签: flutter dart firebase-authentication formatting phone-number


    【解决方案1】:

    我是否在客户端格式化联系人列表电话号码?

    或者我只是发送它并使用云功能以某种方式解决?

    客户端 - 一个好主意。特别是考虑到只有一个本地电话号码是不够的。您还需要猜测国家。这在您拥有更多上下文的客户端更容易。它对性能也更好。

    我该怎么做?

    很可能,这就是您要寻找的:

    1. https://github.com/google/libphonenumber
    2. https://pub.dev/packages/phone_number#-example-tab-

    【讨论】:

      【解决方案2】:

      我建议如下:

      1. 了解您的客户来自哪个国家/地区。
      2. 按名称保存号码
      3. 尝试通过一个过程猜测国家代码并保存所有版本
      4. 使用所有版本进行搜索

      试图猜出正确的数字:

      • 如果它以 + => 开头就很好
      • 否则,如果它以 00 开头 => 将 00 替换为 +
      • 否则使用用户的国家代码,在这种情况下检查联系人姓名是否对应于其他搜索的用户
      • 或者问用户:你认识这个人吗?

      You can find countries key code here

      我希望这会有所帮助, 祝你好运。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-03
        • 1970-01-01
        相关资源
        最近更新 更多