✅⠀Firebase docs
var ref: DatabaseReference!
ref = Database.database().reference()
✅⠀나의 코드
// 저는 하위에 Rank위치를 만들었습니다.
let db = Database.database().reference().child("Rank")
✅⠀Firebase docs
// 노드의 범위를 크게 설정할 시 해당 노드의 하위 노드를 포함하여 모든 데이터를 덮어쓰니 주의하자.
// 범위 크게
self.ref.child("users").child(user.uid).setValue(["username": username])
// 범위 작게
self.ref.child("users/\(user.uid)/username").setValue(username)
✅⠀나의 코드
db.child(date).setValue(["rank":rank])
✅⠀Firebase docs
refHandle = postRef.observe(DataEventType.value, with: { (snapshot) in
let postDict = snapshot.value as? [String : AnyObject] ?? [:]
// ...
})
self.ref.child("users/\(user.uid)/username").getData { (error, snapshot) in
if let error = error {
print("Error getting data \(error)")
}
else if snapshot.exists() {
print("Got data \(snapshot.value!)")
}
else {
print("No data available")
}
}
let userID = Auth.auth().currentUser?.uid
ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
let value = snapshot.value as? NSDictionary
let username = value?["username"] as? String ?? ""
let user = User(username: username)
// ...
}) { (error) in
print(error.localizedDescription)
}
✅⠀나의 코드
db.observeSingleEvent(of:.value) { (snapshot) in
guard let rankValue = snapshot.value as? [String: Any] else {
return
}
}
✅⠀Firebase docs
guard let key = ref.child("posts").childByAutoId().key else { return }
let post = ["uid": userID,
"author": username,
"title": title,
"body": body]
let childUpdates = ["/posts/\(key)": post,
"/user-posts/\(userID)/\(key)/": post]
ref.updateChildValues(childUpdates)
✅⠀나의 코드
db.child(String(wish.timestamp)).updateChildValues([ "timestamp" : wish.timestamp])
✅⠀나의 코드
db.child(String(wish.timestamp)).removeValue()
let alert = UIAlertController(title: nil, message: "랭킹에 추가 할 이름을 입력하세요.", preferredStyle: .alert)
let ok = UIAlertAction(title: "확인", style: .default){ (ok) in
if alert.textFields != nil{
self.rankViewModel.addRank( alert.textFields?[0].text ?? "-", self.timeCount, self.todayGameViewModel.todayGame.today)
self.dismiss(animated: true, completion: nil)
}
}
let cancle = UIAlertAction(title: "취소", style: .cancel){ (cancle) in
self.dismiss(animated: true, completion: nil)
}
alert.addAction(cancle)
alert.addAction(ok)
alert.addTextField()
present(alert, animated: true, completion: nil)
failed to launch): failed to launch ibagent-ios via coresimulator spawn