我正在嘗試使用 Firebase 從我的資料庫中獲取資料。我不確定如何打開和分配變數。我試圖根據匯入的名稱、喜歡和播放視頻在螢屏頂部設定標題。
當我列印變數 jdata 時,它會從 firebase 列印可選 JSON。
import Foundation
import SwiftUI
import AVKit
import Firebase
struct PlayerView: View {
@State var likes: Int = 0
@State var name: String = ""
@State var url: String = ""
@State let player = AVPlayer(url: URL(string: url))
func liked() { likes = 1 }
func update() {
FirebaseApp.configure()
let root = Database.database().reference()
root.observeSingleEvent(of: .value, with: { (snapshot) in
if let data = snapshot.value as? [String: Any] {
let jdata = data["urls"] // Optional JSON
print(jdata)
}
})
}
var body: some View {
VStack{
Text(name)
VideoPlayer(player: player).padding()
HStack {
Button("Like", action: liked).padding()
Text(String(likes)).padding()
}
HStack {
Button("Prev"){}.padding()
Button("Next"){}.padding()
}
Button(action: update) {
Text("Update Database")
}.padding()
}
}
}
我的變數列印后 Optional({"-N25GwfJ9Cj7IlfkFNpL" = {?? likes = 0; name = "NameTest"; url = "Testing"; }; })
uj5u.com熱心網友回復:
根據您顯示的資料,您可以嘗試這種(未經測驗的)方法:
root.observeSingleEvent(of: .value, with: { snapshot in
if let data = snapshot.value as? [String: Any],
let jdata = data["urls"] as? [String: Any] {
if let key = jdata.keys.first,
let result = jdata[key] as? [String: Any] {
print("-----> result: \(result)")
if let likes = result["likes"] {
print("-----> likes: \(likes)")
}
}
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476596.html
