2017-12-17 3 views
0

Firebase의 키를 사용하여 데이터를 요청할 때 orderByKey을 사용합니다. 키가 비슷하다면 같은 문자열로 시작하거나 끝나는 여러 오브젝트를 얻을 수 있습니다.Firebase에서 완전히 다른 키를 가져옵니다.

하지만 Firebase에 대한 한 번의 요청으로 완전히 다른 키를 검색하는 방법은 무엇입니까? "n : 1-2-3"과 "n : 2-3-4"? equalTo을 사용하지만 둘 이상의 키를 지정할 수 있습니까?

나는 다른 요청으로 그것을하는 방법을 알고있다. 하나의 키당 하나의 요청이지만 최적이 아니다.

+0

데이터베이스 샘플 예제를 보여주십시오. 제발, 제 생각에는 오히려 하나 이상의 조건이 필요하다는 것을 알았습니다. 가장 많이 할 수있는 것은 orderbykey()입니다. equalTo (key_here) –

+0

개념적으로 왜 "animal_dog"및 "animal_horse"를 "a123"및 "a234"가 아닌 하나의 요청으로 요청할 수 있습니까? – Eugene

+0

당신은 startAt()를 사용할 수 있습니다. –

답변

1

현재 firebase는 하나의 조건 만 지원합니다. 아래의 텍스트에 더 설명 : - :

DatabaseReference ref=FirebaseDatabase.getInstance().getReference(); 
ref.orderByKey().startAt("a").limitToLast(10).addValueEventListener(..){..} 

limitToLast() 메서드를 설정하는 데 사용됩니다

경우 당신은 당신이 할 수있는 검색 a123 다음 a234을 두 개의 키가 말할 수 지정된 콜백에 대해 동기화 할 최대 자식 수

데이터베이스에서 얻은 결과를 제한하려면 limittolast 또는 limittofirst를 사용할 수 있습니다. 현재 firebase는 하나의 조건 만 지원합니다. 그래서 하나 이상의 orderbykey 또는 orderbychild 또는 두 가지를 함께 가질 수 없습니다.

+0

문제는 그게 마지막이 아니야, 나는 질서를 모른다. 예 : "a123"은 3453이고 "a234"는 4357623입니다. 내 경우에는 startAt()를 사용할 수 없습니다. 내 초기 질문은 : 완전히 다른 키를 읽을 수 있습니까? "qwe"및 "rty". – Eugene

+0

내 대답과 마찬가지로 논리적으로 여러 조건을 수행하는 두 개의 다른 키를 읽지 만 한 조건 만 수행하면 안되기 때문에 가능한 최대 수는 'orderBykey(). equalto (onekeyhere)'입니다. –

+0

수 있습니다. 텍스트의 시작 부분에 "현재 firebase 만 하나의 조건 만 지원합니다"와 같은 정보를 입력하면 대답을 수락하십시오. 그것은 다른 사람들을 더 빨리 도울 것입니다. 감사. – Eugene