setValue() 的完成导致 Firebase 崩溃,Swift 3
Posted
技术标签:
【中文标题】setValue() 的完成导致 Firebase 崩溃,Swift 3【英文标题】:Completion of setValue() causes crash Firebase, Swift 3 【发布时间】:2016-09-17 16:17:10 【问题描述】:我目前正在将应用程序更新到 Swift 3 和 ios 10。问题是每当我使用时:
self.ref.setValue(value, withCompletionBlock: (error: Error?, _:FIRDatabaseReference) in
//Code
)
应用程序在没有任何关于它为什么会这样的信息的情况下崩溃。如果我删除完成,它工作正常。
【问题讨论】:
确保您的ref
不是 nil,很可能是。
@Dravidian 我应该在完成时还是之前检查?
尝试打印之前......
@Dravidian 不是零
你是在模拟器上运行还是在设备上运行?那么值呢,尝试打印。也尝试将(error: Error?, _:FIRDatabaseReference)
替换为(err, snapRef)
【参考方案1】:
试试这个代码,我希望这能解决问题
// U can use this to set value to your database
func setValue()
let myRef = FIRDatabase.database().reference().child("Your path")
let valueForChild: String = "newValue"
let newValue = ["childName": valueForChild] as [String: Any]
myRef.setValue(newValue) (error, ref) in
if error != nil
print(error?.localizedDescription ?? "Failed to update value")
else
print("Success update newValue to database")
// or this to update new value to your database
func updateValue()
let myRef = FIRDatabase.database().reference().child("Your path")
let valueForChild: String = "newValue"
let newValue = ["childName": valueForChild] as [String: Any]
myRef.updateChildValues(newValue) (error, ref) in
if error != nil
print(error?.localizedDescription, "Failed to update value")
else
print("Success update newValue to database")
【讨论】:
以上是关于setValue() 的完成导致 Firebase 崩溃,Swift 3的主要内容,如果未能解决你的问题,请参考以下文章
错误:TimeoutException Future 未完成并且 TypeError:T.as 不是 _Future.new 的函数。[_setValue]
在 Swift 3 中将数据添加到 Firebase 而不是 SetValue
Firebase 聊天应用 setValue 在公共数据库中失败?
如何修复“java.lang.NoSuchMethodError:com.google.firebase.database.DatabaseReference.setValue”