Cloud Firestore에서 문서를 부분적으로 업데이트하는 방법
6144 단어 firebaseprogrammingjavascript
주문 컬렉션이 있고 아래 스크린샷과 같이 해당 컬렉션에서 새 주문 문서를 만들 수 있는 사용자 역할이 있는 로그인한 사용자가 있다고 가정해 보겠습니다.
Recommended
Firebase Cloud Firestore — Add, Update, Get, Delete, OrderBy, Limit
사용자 역할
사용자의 주문 컬렉션에 액세스하기 위한 READ 및 WRITE 보안 규칙은 다음과 같습니다.
쓰기 규칙
match /orders/{ordersId} {
allow write: if
request.auth.uid != null && request.auth.token.isUser == true
}
위의 보안 규칙은 사용자가 로그인하고 사용자 역할이 사용자일 때 새 문서를 만들 수 있도록 허용합니다.
이 단계에서 isUser 역할이 어디에서 오는지 궁금할 수 있습니다.
Firebase에서 사용자 역할을 만드는 방법에는 두 가지가 있습니다. Auth Claims를 사용하여 Cloud Functions를 통해 역할을 생성합니다.
이 항목에 대한 자세한 내용은 인증 클레임을 사용하여 사용자 역할을 만드는 방법에 대해 자세히 다루는 다른 문서를 참조하세요.
Recommended
Firebase + Vue.js ← Role Based Authentication & Authorization
사용자가 다른 사용자가 아닌 자신의 주문에 액세스할 수 있도록 READ RULE.
match /orders/{ordersId} {
allow write: if
request.auth.uid == resource.data.user.uid && request.auth.token.isUser == true
}
위의 보안 규칙은 로그인한 사용자의 uid가 아래 스크린샷과 같이 주문 문서의 사용자 필드 안에 있는 uid와 일치할 때 사용자가 주문을 받을 수 있도록 합니다.
보안 규칙은 로그인한 사용자에게 isUser 역할이 있는지도 확인합니다.
꽤 간단합니다.
드라이버 역할
아래 주문 이미지에서 볼 수 있듯이 주문이 생성되자마자 드라이버를 주문에 할당했습니다. 시연용으로 이렇게 했습니다.
실제로는 관리자 패널을 통해 주문한 후 또는 주문하기 전에 주문을 수락할 수 있도록 사용 가능한 운전자에게 주문 알림을 전송하여 운전자를 할당한 다음 주문 문서에 추가해야 합니다.
운전자가 주문에 할당되면 매장 이름, 매장 주소, 사용자 주소 등과 같은 주문의 특정 정보에 액세스해야 합니다.
따라서 드라이버가 할당된 순서에 대한 읽기 액세스 권한을 부여해 보겠습니다.
match /orders/{ordersId} {
allow read: if
request.auth.uid == resource.data.driver.uid && request.auth.token.isDriver == true
}
좋아요.
이제 사용자는 자신의 주문을 읽고 쓸 수 있으며 운전자는 주문 문서를 읽을 수만 있습니다.
멋진.
Recommended
Firebase + Vue.js ← Role Based Authentication & Authorization
주문 상태
이제 드라이버가 음식 선택, 배달 등과 같은 주문을 진행함에 따라 사용자에게 주문 상태를 제공하고 싶습니다.
Continue Reading...
Reference
이 문제에 관하여(Cloud Firestore에서 문서를 부분적으로 업데이트하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hirajatamil/how-to-partially-update-a-document-in-cloud-firestore-4f1d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)