0
Alamofireのリクエストがあります。私はshortenLink APIのlongUrlを "与え"、それは "私にshortUrlを返します"。リクエストは完璧に動作しますが、Firebaseのリクエストにデータを渡す場合は、それはゼロであることがわかります。GoogleShortenAPIからFirebaseへのデータ
var _longUrl: String!
var longUrl: String {
if _longUrl == nil {
_longUrl = ""
}
return _longUrl!
}
典型的なゲッターだ - セッター
そして、ダウンロード機能は、次のようになります。
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
}
}
}
}
ので、ハードは何もありません。私はデータをデータベースに送る機能にデータを渡すまで、すべてうまく動作します。これは、両方の項目でこの関数で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)
}
と_longUrlは、downloadData関数の外部にあります。 – Magnifique
Hmm。あなたのコードは私にとってはまったく問題ないようです。私はあなたが関数の外で '_shortUrl'を宣言し、関数内で自己によってそれを呼び出すことを見てきました。 'dict [" id "]'が 'name'変数を介して' _shortUrl'に割り当てられていますか? – waseefakhtar
downloadData funcで_shortUrlを印刷すると、正しいJSONデータが表示されます。 – Magnifique