0

나는이 시나리오를 가지고 있는데, 우리는 다른 사용자 B의 프로필을 방문한 userA를 가지고 있으며, 그는 follow를 클릭한다. 그가 userB를 따르고 나서 우리가 그를 Firebase에 쓰고 userB의 추종자들에게 추가하기를 원한다면 : {userA : true} ... 규칙들을 살펴보면 우리가 사용자를 인증 할 수 있다고 이해하지만 그가 일단 인증되면 userB의 추종자에게 그의 userId - 데이터를 변조하지 않고 userC로 쓰는 것없이 userA 만 쓰십시오.사용자가 Firebase에 특정 정보를 쓰는 것을 피하는 방법은 무엇입니까?

인증은 userA를 제공하고 userId에 대한 쓰기 권한은 auth.userA와 같을 수 있습니까? 아니면 임의로 생성되며 사용자가 일반적으로 사용하는 기본 사용자 ID와 동일하지는 않습니다.

또한 자신의 문서에서 auth.userId에 액세스 할 수있는 경우 auth.username을 호출하여 인증 된 사용자 이름을 획득하여 사용자 이름 이외의 이름을 쓰지 않도록 할 수 있습니까?

이름 사용자 ID 날짜

나는 단지 다음에 자신의 ID와 이름을 쓸 수 사용자를 위해 노력하고 있어요 다음 여기에

는 데이터 구조의 예입니다.

Map<String, Object> payload = new HashMap<String, Object>(); 
payload.put("uid", "uniqueId1"); 
payload.put("some", "arbitrary"); 
payload.put("data", "here"); 
TokenGenerator tokenGenerator = new TokenGenerator("<YOUR_FIREBASE_SECRET>"); 
String token = tokenGenerator.createToken(payload); 

"데이터"또는 "사용자 이름", "테스터"일 수 있습니까?

followers 
    <uid> 
    <follower_uid>: true 

그리고 당신은 값을 작성하는 follower_uid 만 사용자를 허용 할 :이 구조를 갖고 싶어처럼

+0

아래 답변. 다음 질문의 경우 : 질문에 데이터 구조에 대한 설명 이상의 것을 포함 시키면 더 빨리 답을 얻을 수 있습니다. 예를 들어, 대부분의 사람들은 데이터 구조에 대한 설명보다는 스캔 한 데이터 구조에있는 작은 다이어그램을 더 빨리 찾을 수 있습니다. –

답변

1

그래서 들린다.

다음 보안 규칙을 사용하여이 작업을 수행 할 수 있습니다.

{ 
    "rules": { 
    "followers": { 
     "$uid": { 
     "$follower_uid": { 
      ".write": "auth.uid == $follower_uid" 
     } 
     } 
    } 
    } 
} 

이 시나리오와 더 많은 시나리오를 다루는 Firebase documentation on security rules을 읽는 것이 좋습니다. 약간의 독서이지만 시간이 충분합니다.

+0

고마워 프랭크, 내 자신의 여분의 인증 방법을 설정하기 위해, 위의 코드를 위의 예제에 추가했습니다. payload.put ("username", "testuser")에 대해 그런 식으로 실행할 수 있습니까? 그런 다음 auth.username을 호출합니다. 검사? – Lion789

관련 문제