Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

JavaScript를 사용하여 익명으로 Firebase에 인증

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Firebase 인증을 사용하여 임시 익명 계정을 만들고 사용하여 Firebase에 인증할 수 있습니다. 이러한 임시 익명 계정을 사용하여 아직 앱에 가입하지 않은 사용자가 보안 규칙으로 보호되는 데이터로 작업할 수 있습니다. 익명의 사용자가 앱에 등록하기로 결정한 경우 로그인 자격 증명을 익명 계정에 연결 하여 향후 세션에서 보호된 데이터로 계속 작업할 수 있습니다.

시작하기 전에

  1. JavaScript 프로젝트에 Firebase를 추가합니다 .
  2. 아직 앱을 Firebase 프로젝트에 연결하지 않았다면 Firebase 콘솔 에서 연결하세요.
  3. 익명 인증 사용:
    1. Firebase 콘솔 에서 인증 섹션을 엽니다.
    2. 로그인 방법 페이지에서 익명 로그인 방법을 활성화합니다.
    3. 선택 사항 : 프로젝트를 Identity Platform을 사용한 Firebase 인증으로 업그레이드한 경우 자동 정리를 활성화할 수 있습니다. 이 설정을 활성화하면 30일이 지난 익명 계정이 자동으로 삭제됩니다. 자동 정리가 활성화된 프로젝트에서 익명 인증은 더 이상 사용 제한 또는 청구 할당량에 포함되지 않습니다. 자동 정리 를 참조하십시오.

Firebase에 익명으로 인증

로그아웃한 사용자가 Firebase 인증이 필요한 앱 기능을 사용하는 경우 다음 단계를 완료하여 사용자를 익명으로 로그인합니다.

  1. signInAnonymously 메서드를 호출합니다.

    Web version 9

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web version 8

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    여기에서 오류를 포착하고 처리할 수도 있습니다. 오류 코드 목록은 Auth Reference Docs 를 참조하십시오.
  2. signInAnonymously 메서드가 오류 없이 완료되면 onAuthStateChanged 에 등록된 관찰자가 트리거되고 User 개체에서 익명 사용자의 계정 데이터를 가져올 수 있습니다.

    Web version 9

    import { getAuth, onAuthStateChanged } from "firebase/auth";
    
    const auth = getAuth();
    onAuthStateChanged(auth, (user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/firebase.User
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web version 8

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

익명 계정을 영구 계정으로 전환

익명의 사용자가 앱에 가입할 때 새 계정으로 작업을 계속하도록 허용할 수 있습니다. 예를 들어 사용자가 가입하기 전에 장바구니에 추가한 항목을 새 계정에서 사용할 수 있도록 할 수 있습니다. 계정의 장바구니. 이렇게 하려면 다음 단계를 완료하십시오.

  1. 사용자가 가입할 때 Auth.signInWith 메서드 중 하나를 호출할 때까지 사용자의 인증 공급자에 대한 로그인 흐름을 완료합니다. 예를 들어 사용자의 Google ID 토큰, Facebook 액세스 토큰 또는 이메일 주소와 비밀번호를 가져옵니다.
  2. 새 인증 공급자에 대한 AuthCredential 을 가져옵니다.

    구글 로그인

    Web version 9

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    Web version 8

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    페이스북 로그인

    Web version 9

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    Web version 8

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    이메일-비밀번호 로그인

    Web version 9

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    Web version 8

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. 로그인 사용자의 link 메서드에 AuthCredential 개체를 전달합니다.

    Web version 9

    import { getAuth, linkWithCredential } from "firebase/auth";
    
    const auth = getAuth();
    linkWithCredential(auth.currentUser, credential)
      .then((usercred) => {
        const user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

    Web version 8

    auth.currentUser.linkWithCredential(credential)
      .then((usercred) => {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

link 호출이 성공하면 사용자의 새 계정이 익명 계정의 Firebase 데이터에 액세스할 수 있습니다.

자동 정리

프로젝트를 Identity Platform을 사용한 Firebase 인증으로 업그레이드한 경우 Firebase 콘솔에서 자동 정리를 활성화할 수 있습니다. 이 기능을 활성화하면 Firebase에서 30일이 지난 익명 계정을 자동으로 삭제하도록 허용합니다. 자동 정리가 활성화된 프로젝트에서 익명 인증은 사용 제한 또는 청구 할당량에 포함되지 않습니다.

  • 자동 정리를 활성화한 후 생성된 모든 익명 계정은 생성 후 30일이 지나면 자동으로 삭제될 수 있습니다.
  • 자동 정리를 활성화하기 전에 생성된 익명 계정은 자동 정리를 활성화한 후 30일부터 자동 삭제 대상이 됩니다.
  • 자동 정리를 끄면 삭제되도록 예약된 모든 익명 계정은 삭제되도록 예약된 상태로 유지됩니다. 이러한 계정은 사용 한도 또는 청구 할당량에 포함되지 않습니다.
  • 익명 계정을 로그인 방법에 연결하여 "업그레이드"하면 계정이 자동으로 삭제되지 않습니다.

이 기능을 사용 설정하기 전에 영향을 받는 사용자 수를 확인하고 프로젝트를 Identity Platform으로 Firebase 인증으로 업그레이드한 경우 Cloud Logging 에서 is_anon 으로 필터링할 수 있습니다.

다음 단계

이제 사용자가 Firebase로 인증할 수 있으므로 Firebase 규칙 을 사용하여 Firebase 데이터베이스의 데이터에 대한 액세스를 제어할 수 있습니다.