2016-09-14 6 views
1

사용자가 이미 클릭하지 않은 경우 같은 버튼을 클릭 할 때마다 데이터베이스에 데이터를 추가하려고합니다. 문제는 내가 likesForPost에 추가 할 때 고유 ID가 표시된다는 것입니다. 그걸 어떻게 없앨 수 있니? 그렇지 않으면 사용자가 이미 버튼을 클릭했는지 확인할 수 없습니다. 여기 고유 한 자동 ID를 사용하지 않고 추가하는 방법 firebase swift

내 중포 기지 구조 : enter image description here

그것은 고유 ID입니다 녹색 부분이며, 고유 ID로 검은 영역이 이미 클릭 한 경우 내가 확인 할 수있을 것인지, 사용자 ID입니다 버튼.

이것은

let quoteString = [userId: true] 
       let refPhotos = FIRDatabase.database().reference().child("feed-items").child(dataPathen).child("likesForPost") 
       let refBase54 = refPhotos.childByAutoId() 
       refBase54.setValue(quoteString) 

너희들이

답변

1

사용 :-) 나를 도울 수 있기를 바랍니다 likesForPost에 추가 내 코드입니다 : -

let prntRef = FIRDatabase.database().reference().child("feed-items").child(dataPathen).child("likesForPost") 
prntRef.observeSingleEventOfType(.Value, withBlock: { (snap) in 

    if let favDict = snap.value as? NSMutableDictionary{ 
     favDict.setObject("true",forKey : uid) 
     prntRef.setValue(favDict) 
    } else { 
     prntRef.setValue(["true":uid]) 
    } 
}) 

또는 그러나 이것은 단지 해킹입니다 ! 더 많은 옵션에 대한

FIRDatabase.database().reference().child("feed-items").child(dataPathen).child("likesForPost").updateChildValues(quoteString) 

확인 : - https://stackoverflow.com/a/39458044/6297658

+0

나는 독특한 자동 ID를 얻을 수있는 방법이 있다면 문제는 해결 될 수 –

+0

:-) 업데이트하지, 데이터를 추가하려면, 중포 기지를 만드는 것입니다 ? –

+0

uid가 사전 키에 없을 때까지는 값을 추가하는 것처럼 작동하지 않습니다. – Dravidian

관련 문제