Firebase setValue() 在模拟器上工作,但在设备上不工作,有人知道为啥吗? iOS 10,斯威夫特 3.1
Posted
技术标签:
【中文标题】Firebase setValue() 在模拟器上工作,但在设备上不工作,有人知道为啥吗? iOS 10,斯威夫特 3.1【英文标题】:Firebase setValue() works in simulator but not on device, anyone know why? iOS 10, Swift 3.1Firebase setValue() 在模拟器上工作,但在设备上不工作,有人知道为什么吗? iOS 10,斯威夫特 3.1 【发布时间】:2017-04-15 16:41:59 【问题描述】:此代码会根据模拟器的要求保存到 Firebase 数据库,但不会在设备上调用完成处理程序。有谁知道为什么或可能的修复?
var customersRef : FIRDatabaseReference
return dbRef.child("customers")
func saveDealData(dealBuilder: DealBuilder, errMsgHandler: ErrMsgHandler?)
print("Shown in log in sim and device")
customersRef.child(u.id!).child("deals").childByAutoId().setValue("true") error, dbRef in
print("Is called for sim but not device")
我已经尝试摆脱尾随闭包并将其放入 setValue() 如下,但同样的情况发生了:
customersRef.child(u.id!).child("deals").childByAutoId().setValue("true", withCompletionBlock: error, dbRef in
print("Is called in sim but not device")
)
【问题讨论】:
【参考方案1】:通过将 Swift 字符串转换为 NSString 来修复此行为。
如下:
customersRef.child(u.id!).child(("deals" as NSString)).childByAutoId().setValue("true") error, dbRef in
print("Is now always called")
【讨论】:
以上是关于Firebase setValue() 在模拟器上工作,但在设备上不工作,有人知道为啥吗? iOS 10,斯威夫特 3.1的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 聊天应用 setValue 在公共数据库中失败?
setValue() 的完成导致 Firebase 崩溃,Swift 3
如何修复“java.lang.NoSuchMethodError:com.google.firebase.database.DatabaseReference.setValue”