要求:从GoogleAuth获取id_token,它与firebase身份验证一起使用。
我用的是47号博览会。
身份验证在iOS上运行正常。但在Android设备上失败。
所用代码:
import * as Google from "expo-auth-session/providers/google";
import * as WebBrowser from "expo-web-browser";
WebBrowser.maybeCompleteAuthSession();
const isDev = process.env.NODE_ENV === 'development';
export default function GoogleAuth() {
const [request, response, promptAsync] = Google.useIdTokenAuthRequest({
androidClientId: "",
iosClientId: "",
clientId: "",
});
useEffect(() => {
if (!response) return;
if (response?.params?.id_token) {
// log in with firebase
} else {
console.log(response) // this logs: {"type":"dismiss"} in android APK
}
}, [response]);
if (!request) {
return null;
}
return (
<Button
onPress={() => promptAsync({ useProxy: isDev, showInRecents: true })}
title={"Continue with Google"}
/>
);
};
我尝试将useAuthRequest
与responseType: 'id_token'
一起使用,但它说响应类型无效。如何修复此错误?
1条答案
按热度按时间7kjnsjlb1#
解决了。
app.json
的schema
不能有任何大写字母。我的packageName
和schema
的形式是com.myapp.mobileApp
。当我将它们更改为com.myapp.mobileapp
时,登录工作正常。