provider.credential' 在 Expo Firebase Google 身份验证中未定义

provider.credential' is undefined in Expo Firebase Google authentication

我是新手,正在尝试在 Expo RN 应用程序中设置 Firebase Google 身份验证,

下面的 Expo 文档代码片段:

https://docs.expo.dev/guides/authentication/#google

import * as React from 'react';
import * as WebBrowser from 'expo-web-browser';
import { ResponseType } from 'expo-auth-session';
import * as Google from 'expo-auth-session/providers/google';
import { initializeApp } from 'firebase/app';
import { getAuth, GoogleAuthProvider, signInWithCredential } from 'firebase/auth';
import { Button } from 'react-native';

// Initialize Firebase
initializeApp({
  /* Config */
});

WebBrowser.maybeCompleteAuthSession();

export default function App() {

  const [request, response, promptAsync] = Google.useIdTokenAuthRequest(
    {
      clientId: 'Your-Web-Client-ID.apps.googleusercontent.com',
      },
  );

  React.useEffect(() => {
    if (response?.type === 'success') {
      const { id_token } = response.params;
      
      const auth = getAuth();
      const provider = new GoogleAuthProvider();
      const credential = provider.credential(id_token);
      signInWithCredential(auth, credential);
    }
  }, [response]);

  return (
    <Button
      disabled={!request}
      title="Login"
      onPress={() => {
        promptAsync();
        }}
    />
  );
}

我遇到类似这样的错误:

TypeError: provider.credential is not a function. (In 'provider.credential(_id_token)', 'provider.credential' is undefined)

有什么解决办法吗?

提前致谢

替换以下代码:

const provider = new GoogleAuthProvider();
const credential = provider.credential(id_token);

与:

const credential = GoogleAuthProvider.credential(idToken);

我认为需要更新 expo 文档以反映这一点。