2017-05-03 1 views
0

백엔드에서 Azure 모바일 서비스 및 Azure Easy Tables를 사용하면 테이블이 상당히 클 수 있지만 고유 한 ID를 가진 특정 사용자에게 유용한 행은 없을 수 있으므로 클라이언트에서 필터링 된 데이터를 가져 오려고합니다. . 나는 사용하려고 시도했다. 그러나, PullAsync는 다음 번에 오직 처음으로 모든 데이터를 가져 오는 것으로 밝혀졌다. Azure 모바일 서비스를 사용하여 쿼리 데이터로만 필터링 된 로컬 저장소에 끌어다 저장하는 방법은 있습니까?Azure 모바일 서비스 PullAsync가 모든 데이터가 아님

답변

2

우선, 먼저 클라이언트가 아니라 서버에서 보안 필터링을 수행해야합니다. 서버 사양을 쉽게 조정할 수있는 방법이 있습니다. 많은 샘플을 보려면 https://github.com/Azure/azure-mobile-apps-node/tree/master/samples을 참조하십시오.

이 문제와 관련하여 쿼리를 잘못 작성하고 있습니다. 원하는 것은 :

var query = msgTable.CreateQuery().Where(c => c.UserId == myId); 
await msgTable.PullAsync('mysyncquery', query); 

중간에 CreateQuery()에 유의하십시오. 이것이 없다면 기본 쿼리를 설정하지 않아도됩니다.

+0

고마워. 하지만 여전히 모든 행을 반환합니다. 그래서 유일한 방법은 서버 측에 필터를 작성하는 것입니다. 그리고 클라이언트 측에서 모든 필터를 사용하여 쿼리를 전달할 수 없습니까? –

+0

백엔드에 전달되는 쿼리를 살펴보십시오. 그것은 $ filter = (userId eq 'something')을 포함해야합니다. - 이것이 작동해야하며, 테스트 결과 올바른 일이 일어 났음을 나타냅니다. –

+0

고마워, 작동 해! 불행히도 나는 같은 것을 붙잡을지도 모른 다른 사람들을 위해 무엇이 문제인지 말할 수는 없지만 이제는 일하기 시작했습니다! –

관련 문제