페이지를 새로고침하면 클라이언트 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; } } }
잊으신 것 같아요
read
和write
之间的逗号,应该看起来像allow read, write: if isAuthenticated();
결국 내 사용자 정보를 유지하기 위해 인증 공급자를 구현해야 했습니다.
새 파일 AuthContext.tsx
으아아아새 파일 AuthProvider.tsx
으아아아그런 다음 index.tsx를 이렇게 업데이트했습니다
으아아아그런 다음 onAuthStateChanged를 호출하는 app.tsx 부분을 다음과 같이 업데이트하세요.
으아아아새로 고침 후에도 문서 추출에 필요한 모든 인증 정보가 유지되는 것 같습니다.