Swift 从数据库中获取特定数据并将其打印出来

Swift 从数据库中获取特定数据并将其打印出来,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我想从Firebase数据库中获取一个特定值,子名称为“TotalExecute”,并使用swift打印它。以下是firebase数据库的当前内容 这是我在swift中的代码,试图获取并打印总练习值 这是对您问题的字面回答,但请继续阅读 let loginRef = self.ref.child("fblogintest-35707").child("Optional(\"gl8...\")") loginRef.observeSingleEvent(of: .value, with: {

我想从Firebase数据库中获取一个特定值,子名称为“TotalExecute”,并使用swift打印它。以下是firebase数据库的当前内容

这是我在swift中的代码,试图获取并打印总练习值


这是对您问题的字面回答,但请继续阅读

let loginRef = self.ref.child("fblogintest-35707").child("Optional(\"gl8...\")")

loginRef.observeSingleEvent(of: .value, with: { snapshot in
    let val = snapshot.value as! [String: Any]
    let te = val["totalExercise"]
    print(te)
})
gl8是一个很长的字符串,我不想重新键入,所以请从您的问题中插入它。此代码将打印“10”

尽管如此,Firebase结构和代码仍存在许多问题

如您所见,无论您的问题中创建键的代码是什么,都是将它们创建为可选的,而不应该在实际的“Optional”(gl8..)字符串写入Firebase时执行。这就是为什么您在结构中看到Optional一词的原因

您可能应该对ref?和user?进行一些展开/错误检查,以便如果它们为nil(它们是可选的),代码不会崩溃


如果您还没有这样做,请继续阅读,因为它们非常强大,但您必须思考如何有效地实现它们以保护您的代码。

我认为这是因为您的节点标题实际上是可选的。这本身不是问题,但当您使用(user?.uid)查询Firebase时,您正在将其展开!以后,请使用firebase结构和代码的文本版本,而不是屏幕截图,这样我们就可以在回答中使用它,而无需重新键入。您可以使用firebase控制台->导出JSON以文本形式获取firebase,然后您可以在问题中复制/粘贴您的结构和代码。@Paulo是的,您是对的。非常感谢。@Ja是的,我下次会以文本形式发布。这是我第一次在这里发布问题,所以我对这里的习惯不熟悉,但是的,谢谢你的反馈。我会记住的。非常感谢。你的代码回答非常有用,而且很有效!