>

내 Firebase 테이블에서 특정 이름을 선택하고 싶습니다 (그림 참조). 인쇄 결과는 항상 비어 있습니다. 선택한 이름은 "manni"여야합니다. 내 코드에 어떤 문제가 있습니까? 고마워요.

  @IBAction func BTSelect(_ sender: Any) {
   DBref = Database.database().reference()
    let query = DBref?.queryOrdered(byChild: "name").queryEqual(toValue: "manni")
    query?.observe(.value, with: { (snapshot) in
        for childSnapshot in snapshot.children {
            print("childSnapshot:->  \(childSnapshot)")
        }
    })
}

] 1

  • 답변 # 1

    queryOrdered(byChild: "name") 를 사용합니다  각 하위 노드에속성이름이있는 경우 그러나 귀하의 경우 name 라는 노드를 쿼리합니다.  하위 노드의을 필터링하려고합니다. 그렇게하려면 queryOrderedByValue 를 사용하십시오. :

    let query = DBref?.child("name").queryOrderedByValue).queryEqual(toValue: "manni")
    
    

    이것은 먼저 name 의 자식 노드를 주문합니다  그들의 가치에, 그리고 manni 와 일치하는 것만 반환

  • 답변 # 2

    이것을 변경해야합니다 :

    let query = DBref?.queryOrdered(byChild: "name").queryEqual(toValue: "manni")
    
    

    이것에 대해 :

    let query = DBref?.queryOrdered(byChild: "-L5o1LyZRP3J_D-OiguB").queryEqual(toValue: "manni")
    
    

    child: name 이후

      manni 와 같지 않습니다 . name 내부의 어린이  매니와 같습니다.

    P.S .:이 잘못된 -L5o1LyZRP3J_D-OiguB 를 복사했을 수 있습니다

    자식 이름은 부모 노드 (아무것도 같지 않음)이며 randomid가있는 모든 노드는 자식 name 의 자식입니다. .

    둘 이상의 값을 검색하려면 동일한 키 (key : value)를 가져야하며 다음을 수행 할 수 있습니다.

    다음과 같이 데이터베이스를 변경할 수 있습니다 :

    myapp2go-app
         randomid
              name:manni
         randomid
              name:manni
         randomid
              name:ulli
         randomid
              name:Test
         randomid
              name:alf
         randomid
              name:ulf
    
    

    쿼리에서 다음과 같이 유지하십시오 :

    let query = DBref?.queryOrdered(byChild: "name").queryEqual(toValue: "manni")
    
    

  • 이전 Qualtrics 디스플레이 로직이 javascript hide ()를 방해합니다
  • 다음 php를 사용하여 배열에서 hh - mm 형식으로 문자열 정렬