【发布时间】:2021-11-14 13:25:29
【问题描述】:
我正在使用 Firebase SDK 在我的 Expo 应用中设置无密码身份验证。我已经到了将电子邮件发送到用户所需地址的地步,并带有返回应用程序的重定向链接。当用户点击链接时,他们确实被重定向但他们没有被认证。我在控制台中收到一般错误:
ERROR: [Error: An internal error has occurred.]
但我知道我的凭据正在正确传递,因为我在函数运行时已将它们注销:
isSignInWithEmailLink:true, url: exp://10.0.0.27:19000?apiKey=AIzaSyAmpd5DdsjOb-MNfVH3MgF1Gn2nT3TBcnY&oobCode=7FJTfBjM28gkn6GfBSAdgAk7wOegg9k4D5poVcylhSYAAAF8BO5gHQ&mode=signIn&lang=en
我在这个函数上调用useEffect:
useEffect(() => {
signInWithEmailLink();
}, []);
发送链接到电子邮件(工作中)
const sendSignInLinkToEmail = (email) => {
return auth
.sendSignInLinkToEmail(email, {
handleCodeInApp: true,
url: proxyUrl,
})
.then(() => {
return true;
});
};
用户单击电子邮件中的链接以重定向到应用程序以进行身份验证(不工作)
const signInWithEmailLink = async () => {
const url = await Linking.getInitialURL();
if (url) {
handleUrl(url);
}
Linking.addEventListener('url', ({ url }) => {
handleUrl(url);
});
};
(返回错误)
const handleUrl = async (url) => {
const isSignInWithEmailLink = auth.isSignInWithEmailLink(url);
console.log('isSignInWithEmailLink: ', isSignInWithEmailLink, 'url', url);
if (isSignInWithEmailLink) {
try {
await auth.signInWithEmailLink(email, url);
} catch (error) {
console.log('ERROR:', error);
}
}
};
【问题讨论】:
-
你设法让它工作了吗?我正在尝试做同样的事情
标签: reactjs firebase react-native firebase-authentication expo