2013-07-22 3 views
5

현재 사용자가 목록을 만든 다음 완료된대로 항목을 체크 할 수있는 간단한 할일 앱이 있습니다. 데이터는 '/ acc_'+ USER_ID + '/ done'및 '/ acc_'+ USER_ID + '/ todo'와 같이 구성됩니다. 항목이 "완료"되면 완료 목록으로 이동합니다.사용자간에 데이터를 공유하기위한 Firebase 데이터와 규칙을 구성하는 방법은 무엇입니까?

사용자가 다른 인증 된 사용자와 목록을 공유 할 수 있기를 바랍니다.

현재 규칙은 다음과 같이 작동하는 것으로 보입니다.

{ 
    "rules": { 
     "$userPath": { 
      ".read": "auth != null", 
      ".write": "auth != null", 
      ".validate": "$userPath === 'acc_' + auth.id" 
     } 
    } 
} 

내가해야 할 일은 승인 된 이메일 주소가 배열 된 각 사용자에게 보안 규칙을 적용하는 것입니다.

또는 루트에서 목록을 만들고 작성자와 공유 된 사용자 만 액세스 할 수 있습니다.

어떤 안내?

답변

1

사용자가 목록을 공유 할 사람을 결정했기 때문에 해당 정보를 사용자 데이터 자체에 저장합니다. 예를 들어 :

{ 
    "rules": { 
    "$userPath": { 
     ".write": "$userPath == 'acc_' + auth.id", 
     ".read": "$userPath == 'acc_' + auth.id || root.child($userPath).child('shared').hasChild(auth.id)" 
    } 
    } 
} 

그리고 데이터가 나는 위의 규칙과 많은 행운이 없었

+0

acc_userid/shared/에와 공유하는 사용자 목록을 저장합니다. 다음은 'acc_'+ auth.id '/ shared'가 첫 번째 항목이 내가 액세스하고자하는 배열 인 작업을 수행 한 것처럼 보입니다. 뒤늦은 시야에서, 이것은 훌륭한 해결책처럼 보이지 않습니다. 내 애플 리케이션의 아키텍처에 내 문제가 깊은 것 같아요. { "규칙": { "$ userPath": { ".write": "$ userPath == 'acc_'+ auth.id || root.child ($ userPath) .child ('공유'). "$ userPath == 'acc_'+ auth.id || root.child ($ userPath) .child ('shared') : 자식 ('0') .val() == auth.email", ") .child ('0'). val() == auth.email " } } } – defmech

+0

그래서 좋은 해결책을 찾았습니까? – jujule

관련 문제