0
Alamofire가 요청했습니다. shortenLink api longUrl을 "제공"하면 shortUrl을 돌려줍니다. 요청은 완벽하게 작동하지만, Firebase 요청에 데이터를 전달할 때는 그것이 제로라는 것을 보여줍니다. GoogleShortenAPI에서 Firebase에 이르는 데이터
func downloadData() {
var parameters = ["longUrl": "https://www.youtube.com/watch?v=XIQsQ2injLo&t=302s"]
Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary <String, AnyObject> {
if let name = dict["id"] as? String {
self._shortUrl = name
}
}
}
}
그래서 열심히 아무것도 : - 전형적인 게터의
var _longUrl: String!
var longUrl: String {
if _longUrl == nil {
_longUrl = ""
}
return _longUrl!
}
처럼 세터
그리고 다운로드 기능 보인다. 데이터를 데이터베이스로 보내는 기능에 데이터를 전달할 때까지 모든 것이 잘 작동합니다. 두 항목 모두이 함수에서 nil을 표시합니다.
func post() {
let item1 = _longUrl
let item2 = _shortUrl
let post : [String: Any] = ["longUrl" : item1, "shortUrl": item2]
let dataBaseRef = FIRDatabase.database().reference()
dataBaseRef.child("urls").childByAutoId().setValue(post)
}
, 그러나 이것은 단지 _shortUrl에 전무 나를 보여주는 및 _longUrl downloadData 함수 외부의 모든 곳. – Magnifique
흠. 귀하의 코드는 나에게 완벽하게 잘 보인다. 내가 보았 듯이 함수 밖에서'_shortUrl'을 선언하고 함수 내부에서 자체적으로 호출했습니다. 'dict [ "id"]'가'name' 변수를 통해'_shortUrl'에 할당되어 있습니까? – waseefakhtar
downloadData func에서 _shortUrl을 인쇄하면 정확한 JSON 데이터가 표시됩니다. – Magnifique