gpt4 book ai didi

ios - 应用程序将数据重置为零,即使它存储在 firebase 上

转载 作者:行者123 更新时间:2023-11-28 13:33:22 25 4
gpt4 key购买 nike

我有一个应用程序,它基本上是一个计算器,供用户计算他们在某些游戏中赢得的总金额。当我输入一个不是整数的数字时——例如“1.25 美元”,它在 firebase 上保存为“1.25 美元”,但是当我关闭应用程序并重新打开时,该值被重置为 0.00 美元,但在 firebase 上仍存储为 1.25 美元”。如果我对一个整数(例如“$1”)执行相同的操作,然后关闭应用程序然后再打开,“$1”会保留在应用程序中。

//add local data
let gameKey = gameNames[addWinningsView.tag]
let newValue = amountList[addWinningsView.tag] + (Double(addWinningsAmount.text!) ?? 0)
UserDefaults.standard.set(newValue, forKey: gameKey)
UserDefaults.standard.synchronize()

//Update UI
loadTotalAmount()

//update to firebase
let uuid = UIDevice.current.identifierForVendor!.uuidString
let ref = Database.database().reference().child("app_data/user_total_won/\(uuid)/\(gameKey)")
ref.setValue(newValue)

从 firebase 加载数据的代码

//Load winning points
let uuid = UIDevice.current.identifierForVendor!.uuidString
Database.database().reference().child("app_data/user_total_won/\(uuid)").observeSingleEvent(of: .value, with: {(snapshot) in
let dict = snapshot.value as? [String : AnyObject] ?? [:]

for game in gameNames {
let amount = dict[game] as? Int ?? 0
UserDefaults.standard.set(amount, forKey: game)
UserDefaults.standard.synchronize()
}
self.loadTotalAmount()
}

预期结果:从 firebase 检索不仅仅是整数的数据。

最佳答案

当您从 Firebase 检索值时,可选择将其转换为 as? Double 而不是 Int 所以你不会得到整数。

要解决此问题,请将 let amount = dict[game] 更改为?诠释?? 0 to let amount = dict[game] as?双倍的 ?? 0 如果您在 Firestore 中将金额保存为 Double

关于ios - 应用程序将数据重置为零,即使它存储在 firebase 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com