일부 사용자가 일부 이벤트를 응용 프로그램에 넣고 다른 사용자가 볼 수있는 "이벤트"응용 프로그램을 구축 중입니다. 모든 이벤트에 시작 날짜/시간, 종료 날짜/시간 및 이름이 있다고 가정 해 봅시다.Firebase 데이터베이스의 데이터 만료 방법
사용자가 현재 이벤트 만 보길 원합니다. 즉, 시작이 < 인 이벤트 인 <이 끝납니다. 이것은 Firebase에서 지원되지 않는 일종의 필터링입니다. startAt 및 endAt 쿼리를 사용하여 응용 프로그램에서이 작업을 수행 할 수 있습니다. 그러나 내 애플리케이션이 과거 및 미래의 이벤트에 액세스하지는 못해도 누구나이 이벤트를보기 위해 REST API에서 데이터베이스를 쿼리 할 수 있기 때문에 이는 사용자로부터 기밀 데이터를 숨기는 데 도움이되지 않습니다.
따라서 이벤트의 세 가지 목록, 즉 past_events
, current_events
및 future_events
으로 데이터를 구조화하기로 결정했습니다.
자, 문제는 적절한시기 current_events
에서 past_events
에 future_events
에서 current_events
에 이벤트를 이동해야한다는 것입니다. firebase 내에서 이러한 변경 사항을 자동으로 트리거 할 수있는 방법이 없다고 생각합니다. 따라서 정기적으로 청소하는 서비스를 어딘가에 두려고합니다.
Firebase에서 데이터 만료를 처리하는 가장 좋은 방법입니까? 어떤 제안/코멘트?
감사
당신이 중포 기지에 저장된 각 이벤트의 종료 날짜가있는 경우
Firebase 구조가 올바르게 설정된 경우 '움직이는'데이터를 '정리'로 변경하는 것이 일반적으로 필요하지 않을 수 있습니다. 예를 들어, 쿼리를 실행할 때 해당 노드에 저장된 타임 스탬프가 7 일 이전의 결과 만 반환합니다. 그렇게하면 코드가 코드를 처리 할 때 '만료되는'데이터에 대해 걱정할 필요가 없습니다. 또는 타임 스탬프가 지금부터 7 일인 노드에 대한 결과를 반환합니다. 코드와 Firebase Rules에서 수행되는 모든 작업은 사용자가 다른 데이터로 이동하는 것을 제한합니다. – Jay
@Jay, 글쎄,''코드 처리부는 @Pawel Janicki의 답변과 동일합니다. 문제는 응용 프로그램 사용자로부터 데이터를 숨기지 만, 데이터베이스에 가서 쿼리 할 때입니다. 직접 (우편 배달부를 통해) 직접 모든 이벤트를 볼 수 있습니다. 응용 프로그램 쪽 쿼리를 사용하면 데이터베이스에 보안을 제공하지 않습니다. 이 데이터를 기밀로 유지하여 아무도 (스크립트 꼬마들도 포함해서) 아무도 볼 수 없도록하고 싶습니다. 보안 규칙을 통해서만이를 수행 할 수 있으며 보안 규칙은 필터링을 제공하지 않습니다. –