Firebase 인증. 페이지를 새로 고치면 request.auth가 null입니다.
P粉693126115
P粉693126115 2024-02-25 21:55:56
0
2
467

페이지를 새로고침하면 클라이언트 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粉693126115
P粉693126115

모든 응답(2)
P粉258788831

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

P粉854119263

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

새 파일 AuthContext.tsx

으아아아

새 파일 AuthProvider.tsx

으아아아

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

으아아아

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

으아아아

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿