0
我得到了Alamofire請求。我「給」縮短鏈接長度,它「給了我一個短暫的回報」。請求完美地工作,但是當將數據傳遞給Firebase請求時,它向我顯示它爲零。從GoogleShortenAPI到Firebase的數據
var _longUrl: String!
var longUrl: String {
if _longUrl == nil {
_longUrl = ""
}
return _longUrl!
}
這是典型的getter - 二傳手
,下載功能看起來像:
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
}
}
}
}
所以沒有什麼困難的。一切工作正常,直到我想傳遞數據到函數發送數據到數據庫。它顯示我在這兩個項目上都沒有這個功能。
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和downloadData函數外的_longUrl無處不在。 – Magnifique
嗯。你的代碼對我來說似乎很完美。正如我所看到的,你已經在函數之外聲明瞭'_shortUrl',並且在函數內部自行調用它。你確定'dict [「id」]'是通過'name'變量賦給'_shortUrl'嗎? – waseefakhtar
當我在downloadData func中打印_shortUrl時,它顯示我正確的JSON數據。 – Magnifique