2017-03-22 2 views
1

FB 데이터베이스의 개별 게시물을 보유하고있는 게시물 노드가 있습니다. 각 게시물의 배열은 users_liked이며 임의로 생성 된 키가 있으며 값은 현재 사용자 uid입니다. 내 문제는이 배열에 값 (uid)이 이미 있는지 확인하고 싶다면 뭔가를 수행 할 수 있기를 원한다는 것입니다. 그렇지 않으면 다른 것을하십시오Swift 3 + Firebase : 배열 내부의 값이 존재하는지 확인하십시오.

어떻게 이것을합니까? 내 JSON 트리가 아래에 있습니다. 고맙습니다. enter image description here

+0

. 이것을 필요로한다면, 일반적으로'users_liked'를 반대로하고 UID를 키로 사용해야 함을 의미합니다. https://youtu.be/66lDSYtyils?t=6m17s 및 http://stackoverflow.com/questions/39149216/firebase-security-rules-to-check-unique-value-of-a-child-askfirebase를 참조하십시오. –

답변

0

나는 당신을위한 재미있는 코드를 작성했다. 그리고 나는 Swift를 원한다는 것을 깨달았고 Java를 사용한다. 어쨌든, 개념적 개요만으로 충분할 것이다. "users_liked"노드에 대한 Firebase 데이터베이스 참조를 만들고 단일 참조 값 수신기를이 참조로 설정하십시오. 그런 다음 datasnapshot을 "foreach"루프 swift에 전달하여 datasnapshot (datasnapshot.getChildren())의 각 하위에 대해 새로운 datasnapshot 인 "dsChild"를 만듭니다. 마지막으로 dsChild.getValue를 수행하고 equalTo()를 사용하여 값이 존재하는지 확인하여 각 항목을 점검하십시오. 이것이 도움이되기를 바란다. 미안하다. Swift에서 쓸 수 없었다.

1

해당 경로에 대한 스냅 샷을 요청하고 .exists()을 사용하십시오.

var postid = "-KGNY..." 
var uid = FIRAuth.auth()?.currentUser?.uid 
var ref = FIRDatabase.database().reference() 

ref.child("posts").child(postid).child("users_liked").child(uid!) 
    .observeSingleEvent(of: .value, with: { (snapshot) in 
    // Get user value 
    if snapshot.exists() == true { 
    print("exists") 
    } 
    else { 
    print("does not exist") 
    } 
}) { (error) in 
    print(error.localizedDescription) 
} 

(내 형편 스위프트 구문을 용서 그것은 아직 말할 언어 아니다) 중포 기지에 특정 값이 존재하는지 확인하는 능력이없는

관련 문제