찾다

 >  Q&A  >  본문

Firebase 인증. 페이지를 새로 고치면 request.auth가 null입니다.

페이지를 새로고침하면 클라이언트 Firebase에서는 인증된 사용자가 있다고 생각하는 것 같지만 Firestore Firebase 규칙에 따르면 인증된 사용자가 없는 것으로 나타납니다.

signInWithEmailAndPassword 使用电子邮件和密码登录。我将持久性设置为 browserLocalPersistence。通常,当用户登录时,会使用经过身份验证的用户对象调用 onAuthStateChanged 方法,并且应用程序可以正常运行。当用户刷新页面时,我的 onAuthStateChanged 메서드를 통해 사용자가 null이 아닌 사용자로 다시 트리거되는 Firebase 앱이 있지만 보안 규칙으로 인해 모든 Firebase 쿼리가 실패합니다. 내가 뭘 잘못하고 있는 거지?

이것은 Reactjs 애플리케이션입니다. 귀하에게 영감을 줄 수 있는 다른 답변이 있으면 알려 주시기 바랍니다.

내 Firebase 규칙:

으아아아

내 로그인 코드:

으아아아

내 onAuthStateChanged 코드

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if isAuthenticated();
    }
    function isAuthenticated() {
        return request.auth != null && request.auth.uid != null;
    }
  }
  
}

P粉693126115P粉693126115312일 전509

모든 응답(2)나는 대답할 것이다

  • P粉258788831

    P粉2587888312024-02-26 20:51:07

    잊으신 것 같아요 readwrite 之间的逗号,应该看起来像 allow read, write: if isAuthenticated();

    회신하다
    0
  • P粉854119263

    P粉8541192632024-02-26 14:51:34

    결국 내 사용자 정보를 유지하기 위해 인증 공급자를 구현해야 했습니다.

    새 파일 AuthContext.tsx

    으아아아

    새 파일 AuthProvider.tsx

    으아아아

    그런 다음 index.tsx를 이렇게 업데이트했습니다

    으아아아

    그런 다음 onAuthStateChanged를 호출하는 app.tsx 부분을 다음과 같이 업데이트하세요.

    으아아아

    새로 고침 후에도 문서 추출에 필요한 모든 인증 정보가 유지되는 것 같습니다.

    회신하다
    0
  • 취소회신하다