我正在尝试使用Expo创建React Native应用程序并使用Google进行身份验证。我正在遵循此文档。我希望response.authentication.accessToken
是字符串访问令牌,而不是null。我的错误消息是Typeerror: null is not an object (evaluating 'response.authentication.accesstoken')
下面是我的代码的相关部分:
WebBrowser.maybeCompleteAuthSession();
export default function App() {
const [accessToken, setAccessToken] = React.useState(null);
const [user, setUser] = React.useState(null);
const [request, response, promptAsync] = Google.useIdTokenAuthRequest({
expoClientId: "[REDACTED].apps.googleusercontent.com",
webClientId: "[REDACTED].apps.googleusercontent.com",
iosClientId: "[REDACTED].apps.googleusercontent.com",
androidClientId: "[REDACTED].apps.googleusercontent.com",
});
React.useEffect(() => {
if(response?.type === "success") {
console.log(response);
setAccessToken(response.authentication.accessToken);
accessToken && fetchUserInfo();
}
}, [response, accessToken])
为什么是空的?
1条答案
按热度按时间lyr7nygr1#
我找到的解决方案是切换函数,Google.useIdTokenAuthRequest到Google.useAuthRequest。我还修复了app.json中的bundleIdentifier和android包,以完全匹配我的slug(存在大小写问题)。