이상한 문제가 있습니다. Firebase DB에 일부 데이터가 설정되어 있습니다.Swift 3 Firebase DB 읽기 데이터 문제
나는 구조체과 같이 구성한 :
func getTrackData() {
let result = FIRDatabase.database().reference(withPath: "tracks")
result.observe(.value, with: { snapshot in
var newItems: [newTracks] = []
print(newItems)
for item in snapshot.children {
let trackDetails = newTracks(snapshot: item as! FIRDataSnapshot)
newItems.append(trackDetails)
}
print(newItems)
self.items = newItems
self.tableView.reloadData()
})
}
현재 내가하는 옵션 값을 풀기 동안 예기치 않게 NIL을 발견 "점점 오전 : 이것은 때라도 코드 내의 ViewController에 참조
import Foundation
import FirebaseDatabase
struct newTracks {
let name: String!
let trackId: Int!
let postcode: String!
let trackType: String!
let locID: Int!
let lat: Double!
let lon: Double!
let phoneNumber: String!
let email: String!
let rating: Double!
let ref: FIRDatabaseReference?
init(name: String, trackId: Int, postcode: String, trackType: String, trackURL: String, locID: Int, lat: Double, lon: Double, phoneNumber: String, email: String, rating: Double) {
self.name = name
self.trackId = trackId
self.ref = nil
self.postcode = postcode
self.trackType = trackType
self.locID = locID
self.lat = lat
self.lon = lon
self.phoneNumber = phoneNumber
self.email = email
self.rating = rating
}
init(snapshot: FIRDataSnapshot) {
let snapshotValue = snapshot.value as! [String: AnyObject]
print(snapshotValue)
name = snapshotValue["name"] as! String
trackId = snapshotValue["id"]as! Int
postcode = snapshotValue["postcode"]as! String
trackType = snapshotValue["type"]as! String
locID = snapshotValue["locID"]as! Int
lat = snapshotValue["lat"]as! Double
lon = snapshotValue["long"]as! Double
phoneNumber = snapshotValue["phone"]as! String
email = snapshotValue["email"]as! String
rating = snapshotValue["rating"]as! Double
ref = snapshot.ref
}
func toAnyObject() -> Any {
return [
"name": name,
"trackId": trackId,
"postcode": postcode,
"trackType": trackType,
"locID": locID,
"lat": lat,
"lon": lon,
"phoneNumber": phoneNumber,
"email": email,
"rating": rating
]
}
}
"나는 왜 그것을 얻고 있는지를 알았다. 첫 번째 코드 블록에서 다음 줄이 실행되기 때문이다.
print(snapshotValue)
,516,
다음과 같은 결과가 생산됩니다
"["이름 ": J4M54,"이메일 "[email protected],"우편 번호 "TF11 1XX,"등급 ": 1,"유형 "토양" "long": -2.398844, "id": 8, "phone":, "locID": 353823, "lat": 52.679089, "spare": 아니오, "jetwash" 클럽 ": 연습 트랙]
["등급 : 나와 많은 있기 때문에 "4]"
이 결과의 스 니펫이다.
그것은 팬텀 결과 "
이 나던 내 DB에 존재 나는 시도 내 DB를 다시.. [4"등급 "] 문제는 결과
의 맨 마지막 부분입니다 내 JSON의 백업, 그냥 나던이 결과를 사용하여 데이터는 데이터의 아무 곳이나 존재, 그래서 그것을 제거하는 방법을 모르겠어요. 어떤 도움도 대단히 감사하겠습니다
.
은 왜 그냥 failable 이니셜을 넣어와 전무 체크 표시를하지 못할 지금 잘? –
Im은 팬텀 데이터가 어디에서 호출되는지에 대해 주로 염려합니다. –