gpt4 book ai didi

android - 使用 Firebase 进行密码身份验证的电话号码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:50 26 4
gpt4 key购买 nike

在我当前的项目中,我使用电子邮件 ID 注册用户,然后在用户更新电话号码时在配置文件部分中验证该电话号码并使用 PhoneAuthCredetials 我为同一用户合并两种身份验证方法。

现在真正的痛苦是,我的用户可以使用电话号码或电子邮件 ID 登录,但对于电子邮件 ID,用户必须输入密码,而对于电话号码,则需要 OTP。(我试过了,为 signInWithEmailAndPassword() 输入了电话号码和密码但没有成功)

我希望用户使用密码登录电子邮件或电话。 Flipkart 的做法。

有什么办法可以解决这个问题吗?

最佳答案

使用以下代码创建云函数

const functions = require('firebase-functions');
const firebase = require('firebase');
const admin = require('firebase-admin');

admin.initializeApp();
firebase.initializeApp({
//Add config for web-app here
//Required because Admin SDK doesn't include signInWithEmailAndPassword method
});

exports.signInWithPhoneAndPassword = functions.https.onCall(async (data, context) => {
const phoneNumber = data.phone;
if (phoneNumber === undefined) {
return {'s':400,'m':'Bad argument: no phone number'};
}
const user = await admin.auth().getUserByPhoneNumber(phoneNumber);
const pass = data.password;
try {
await firebase.auth().signInWithEmailAndPassword(user.email, pass);
} catch (e) {
return {'s':400,'m':'Wrong password'};
}
const token = await admin.auth().createCustomToken(user.uid, {'devClaim':true}); //developer claims, optional param
return {'s':200,'t':token};
});

在客户端调用此函数,如果它返回带有 "s"==200 的对象,请使用带有 signInWithCustomToken 的 token ( Calling a Cloud Function from Android through Firebase )

关于android - 使用 Firebase 进行密码身份验证的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56680953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com