【问题标题】:getting user details using firebase auth where condition is multiple phoneNumbers?使用firebase auth获取用户详细信息,条件是多个电话号码?
【发布时间】:2020-05-05 01:40:52
【问题描述】:

我想使用 phoneNumber 检索用户,其中 phoneNumber 是多个我会说一个 phoneNumber 数组我想使用它来获得用户的响应。我只知道如何使用单个数字进行检索。我已经创建了此代码,当我传递单个数字时它可以工作,但我不知道如何为 phonNumbers 数组执行。

const getAuth = async phoneNumber => {
  return auth.getUserByPhoneNumber(phoneNumber).catch(() => {
    return ;
  });
};

const userRecords = await Promise.all([getAuth('+915555555555'), getAuth('+916666445555')]);
console.log(userRecords)

我有一个电话号码数组

['+915555555555','+916666445555','+917778886655',+91555598668']

【问题讨论】:

    标签: javascript arrays node.js firebase firebase-authentication


    【解决方案1】:

    你很亲密。您可以使用.map 来迭代并将承诺数组返回给Promise.all。像这样的

    const getAuth = async phoneNumber => {
      return auth.getUserByPhoneNumber(phoneNumber).catch(() => {
        return ;
      });
    };
    
    async function getAll() {
       const userRecords = await Promise.all(['+915555555555','+916666445555','+917778886655','+91555598668'].map(phNo => getAuth(phNo)));
       return userRecords;
    }
    
    

    异步包装只是为了执行它。如果将此代码放在异步函数中,则不需要它。

    【讨论】:

    • 在此,存在范围问题,我必须使用 userRecord 并将其打印到数据也来自 firebase 的 excel 文件中
    • 很抱歉没有真正了解范围部分。你的意思是你需要在其他地方使用userRecords 变量?
    • 是的,我已经尝试了上述方法,但我遇到了范围问题。
    • 我已将其转换为函数并返回值。现在您可以将此函数作为普通异步函数调用,并使用userRecords的返回值
    • 你能告诉我一件事当我运行这个代码时它不会退出如果我使用这个用户验证码它会持续运行
    【解决方案2】:
    const getAuth = async phoneNumber => {
      return auth.getUserByPhoneNumber(phoneNumber).catch(() => {
        return ;
      });
    };
    
    const userRecords = await Promise.all(
        phoneNumber.map(phNo => {
          return getAuth(phNo);
        }),
      );
    console.log(userRecords)
    

    这里的phoneNumber是一个存储号码的数组。

    【讨论】:

      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-25
      • 2013-01-19
      • 1970-01-01
      相关资源
      最近更新 更多