그룹별로 Firebase Storage의 경로에 대한 업로드를 제어하는 방법이 있습니까? 예를 들어 특정 경로에만 업로드 할 수있는 위치 또는 팀을 업로드 할 수있는 관리자 그룹이 있습니다.맞춤 인증을 사용하지 않고 firebase storage에 그룹 액세스 생성
답변
조금만 둘러 본 후 준비된 답을 찾지 못해서 지금까지 가지고있는 것을 올릴 것입니다. 이 작업을 수행하는 다른 (더 나은) 방법이 있는지 알면 좋습니다.
다른 서버를 사용하지 않으려 고하므로 사용자 지정 인증 토큰이 부족합니다. 그러나 request.auth.uid는 저장 영역 규칙에서 사용할 수 있습니다. uid 속성은 Auth 영역에 정의 된 사용자 중 하나와 일치합니다. request.auth.uid가 정의한 그룹에 있는지 확인하는 저장 규칙에 함수를 작성해야합니다.
파이어베이스 저장 규칙에는 고유 한 구문이 있습니다. 그것은 자바 스크립트처럼 보이지만 그렇지 않습니다. 함수를 정의 할 수는 있지만 함수 내에서 var을 선언 할 수는 없습니다. 또한 자바 스크립트와 같은 메소드를 사용할 수 있습니다. 나는 VAR을 정의하려고 또는 내가 .indexOf를 사용할 때 항상 "무단"돌아 왔을 때
function isAdmin() {
return ["value","list"].indexOf(request.auth.uid) > -1;
}
service firebase.storage {...}
어느 규칙 편집기 오류를 던졌다 :
는 예를 들어, 내가 먼저 실패 다음 시도했다.
다음은 나를 위해 일했다.
function isAdmin() {
return request.auth.uid in {
"yaddayadddayaddUserIDKey":"User Name1"
};
}
function isSomeOtherGroup() {
return request.auth.uid in {
"yaddayaddaSomeOtherUID":"User Name2",
"YaddBlahBlahUID":"User Name3"
};
}
service firebase.storage {
match /b/<your bucket here>/o {
match /{allPaths=**} {
allow read, write: if isAdmin();
}
match /path/{allPaths=**} {
allow read, write: if isSomeOtherGroup() || isAdmin();
}
}
}
방금이 솔루션을 시도했지만 어떤 이유로 작동하지 않습니다. 도중에 발견 한 다른 경고가 있었습니까? –
전자 메일 주소 인증만을 사용하고있었습니다. 나는 구글이나 페이스 북의 인증을 시도하지 않았다. – ecalvo
@ ecalvo의 답변에 대한 평판이 충분하지 않습니다. 그래서 나는 대답을 추가하고있다. isAdmin()
함수는 다음과 같은 목록을 제공 할 수있다 : 구현
function isAdmin() {
return request.auth !=null && request.auth.uid in [
"uidAdmin1",
"uidAdmin2",
"uidOfOtherAdminsAsCommaSeparatedStrings"
];
}
나머지 @ecalvo의 응답에서 차용 할 수있다. 나는 그것이 더 분명하다고 느낀다. @ecalvo의 대답에서 나는 UID 만 비교할 때 왜 사용자 이름을 주어야하는지 혼란스러워했습니다.
- 1. django 인증을 사용하지 않고 request.user.is_authenticated()
- 2. 파일을 firebase storage에 복사 하시겠습니까?
- 3. addValueEventListener를 사용하지 않고 Firebase 데이터에 액세스하는 방법
- 4. cordovaFileTransfer를 사용하여 firebase (3.0) storage에 비디오 업로드
- 5. REST API를 사용하여 Firebase Storage에 파일 업로드
- 6. 이미지를 Firebase Storage에 업로드 할 수 없습니다.
- 7. 이미지 배열을 firebase storage에 업로드하는 방법은 무엇입니까?
- 8. dropzonejs를 사용하여 이미지를 firebase storage에 업로드 하시겠습니까?
- 9. Firebase Storage에 폴더를 만드는 방법은 무엇입니까?
- 10. Firebase Storage에 파일이 있는지 확인하는 방법은 무엇입니까?
- 11. firebase 맞춤 인증을 사용하려면 웹 클라이언트의 새로 고침 토큰을 관리해야합니까?
- 12. 인터페이스를 사용하지 않고 믹스킨 생성
- 13. 페이지로드를 사용하지 않고 GridView 생성
- 14. openssl을 사용하지 않고 인증서 생성
- 15. 콜백을 사용하지 않고 손실에 액세스
- 16. phpMyAdmin을 사용하지 않고 데이터베이스에 액세스
- 17. ImplicitFieldConstructor를 사용하지 않고 FieldElements에 액세스
- 18. ValidatesOnDataErrors를 사용하지 않고 IDataErrorInfo에 액세스
- 19. 라이브러리를 사용하지 않고 IE의 맞춤 이벤트
- 20. 너비를 사용하지 않고 양식 중앙 맞춤
- 21. 내장 인증을 사용하지 않고 elmah에 대한 액세스를 어떻게 제한합니까?
- 22. MVC를 사용하지 않고 데이터베이스에 ASP.Net 사용자 지정 인증을 구축
- 23. username 패스워드 인증을 사용하지 않고 서블릿 URL을 보호하기
- 24. NodeJS 서버 측의 Firebase Storage에 대한 외부 링크를 안전하게
- 25. Firebase auth 맞춤 토큰 iOS
- 26. 다른 프로젝트에서 Firebase Storage에 저장된 파일을 다운로드하여 사용하십시오.
- 27. Firebase Storage에 텍스트가 첨부 된 이미지 업로드 (연결)
- 28. 일치하는 이메일을 사용하지 않고 여러 인증 기관을 연결하는 Firebase
- 29. 고유 한 자동 ID를 사용하지 않고 추가하는 방법 firebase swift
- 30. Firebase API를 사용하지 않고 Nest REST API의 작동 예제가 필요합니다.
[보안 사용자 데이터 가이드] (https://firebase.google.com/docs/storage/security/user-security) (그룹 접근 방식 언급), [사용자 그룹, 인증 클레임 및 맞춤 토큰] (https://groups.google.com/forum/#!searchin/firebase-talk/groups$20auth$20claims%7Csort:relevance/firebase-talk/77i9CRlwg88/iQsE78CbGQAJ) 토론 그룹. – Kato