ios - Firebase 有时无法将数据保存到数据库中?

标签 ios swift firebase firebase-realtime-database

我有一个代码,可以将多个内容保存到数据库中(照片 ID、用户 ID、用户名、 key )

问题是,当我单击按钮保存该数据时,Firebase 有时无法保存所有数据(有时无法一次保存照片 ID、用户名、 key 或多个内容)

有时它会成功并将它们全部保存到数据库

问题是什么?如何解决?

ref.child("requests").child("receiver").child((event?.userID)!).child("event").child(event!.key).child("requester").child(user!.uid).child("isRequesterAccepted").setValue(false)
                ref.child("requests").child("receiver").child((event?.userID)!).child("event").child(event!.key).child("requester")
                .child(user!.uid).child("name").setValue(name)
                ref.child("requests").child("receiver").child((event?.userID)!).child("event").child(event!.key).child("requester")
                .child(user!.uid).child("key").setValue(String(user!.uid))
                ref.child("requests").child("receiver").child((event?.userID)!).child("event").child(event!.key).child("requester")
                .child(user!.uid).child("profile_picture").setValue(String(user!.uid))
                ref.child("requests").child("receiver").child((event?.userID)!).child("event").child(event!.key).child("requester")
                .child(user!.uid).child("eventKey").setValue(event?.key)

最佳答案

我不是 100% 确定,但可能的原因是在代码中使用强制展开。

所以尝试一点重构:

guard let indeedEvent = event,
  let indeedUser = user else {
  return
}

ref.child("requests")
  .child("receiver")
  .child(indeedEvent.userID)
  .child("event")
  .child(indeedEvent.key)
  .child("requester")
  .child(indeedUser.uid)
  .child("isRequesterAccepted")
  .setValue(false)

ref.child("requests")
  .child("receiver")
  .child(indeedEvent.userID)
  .child("event")
  .child(indeedEvent.key)
  .child("requester")
  .child(indeedUser.uid)
  .child("name")
  .setValue(name)

ref.child("requests")
  .child("receiver")
  .child(indeedEvent.userID)
  .child("event")
  .child(indeedEvent.key)
  .child("requester")
  .child(indeedUser.uid)
  .child("key")
  .setValue(String(indeedUser.uid))

ref.child("requests")
  .child("receiver")
  .child(indeedEvent.userID)
  .child("event")
  .child(indeedEvent.key)
  .child("requester")
  .child(indeedUser.uid)
  .child("profile_picture")
  .setValue(String(indeedUser.uid))

ref.child("requests")
  .child("receiver")
  .child(indeedEvent.userID)
  .child("event")
  .child(indeedEvent.key)
  .child("requester")
  .child(indeedUser.uid)
  .child("eventKey")
  .setValue(indeedEvent.key)

关于ios - Firebase 有时无法将数据保存到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55704689/

相关文章:

firebase - Firestore 中的空文档是否被删除?

ios - 如何正确地将字符串转换为日期?

ios - 如何使用对象 JSExport Objective-C 方法

objective-c - 通过 Casting 调用另一个类中的方法?

ios - 如何将闭包作为 Action 传递给添加到 UIView 的点击手势?

ios - 无法将模块 'XMPP_Messenger_iOS' 加载为 Swift 中的 'xmpp_messenger_ios 错误

typescript - Firebase 实验性 :functions:shell not reloading updated code

ios - 如何知道请求是否来自缓存或不使用 AFNetworking

ios - 如何自动从 viewcontroller 重新加载数据?

java - 如何从 Firebase 数据库检索图像并将其显示在 RecyclerView 中?