Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 从数据库的字符串中删除/n_Swift_Firebase_Firebase Realtime Database - Fatal编程技术网

Swift 从数据库的字符串中删除/n

Swift 从数据库的字符串中删除/n,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我发现我的战机ID无法从数据库加载,因为我的路径不正确。这是因为字符串末尾有一个我的数据库显然没有的a/n。这是发生错误的代码 func bronzePlayer () { loading.isHidden = false coverPacked.isHidden = false playerPackedCard.isHidden = false coverPackedCard.isHidden = false ref.child("Fighters/B

我发现我的战机ID无法从数据库加载,因为我的路径不正确。这是因为字符串末尾有一个我的数据库显然没有的a/n。这是发生错误的代码

 func bronzePlayer () {
    loading.isHidden = false
    coverPacked.isHidden = false
    playerPackedCard.isHidden = false
    coverPackedCard.isHidden = false
    ref.child("Fighters/Bronze").observeSingleEvent(of: .value, with: { (snapshot) in

        let value = snapshot.value as? NSDictionary
        self.packToNumber = value?["Total"] as! Int
        self.packedNumber = Int(arc4random_uniform(UInt32(self.packToNumber))) + 1
        self.setPackedString()

    }) { (error) in
        print(error.localizedDescription)
    }
    ref.child("\(packedNumberString)").observeSingleEvent(of: .value, with: { (snapshot) in

        let value = snapshot.value as? NSDictionary
        self.playerPackedID = value?["ID"] as! Int
        self.playerPackedPicture = value?["Picture"] as? String ?? ""

        self.loading.isHidden = true

    }) { (error) in
        print(error.localizedDescription)
    }
    playerPackedCard.texture = SKTexture(imageNamed: "\(playerPackedPicture)")
}
错误发生在

  self.playerPackedID = value?["ID"] as! Int
这是因为它没有找到

  ref.child("\(packedNumberString)")

最后我需要去掉/n。有什么办法吗?谢谢

您可以使用
过滤器删除字符串中的字符

let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")
然后,您可以使用过滤后的字符串作为子参数:

let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")

您可以使用
过滤器
删除字符串中的字符:

let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")
然后,您可以使用过滤后的字符串作为子参数

let filteredPackedNumberString = String(packedNumberString.characters.filter { !" \n".characters.contains($0) })
ref.child("\(filteredPackedNumberString)")

请粘贴您从firebase收到的输出,以及数据库的屏幕截图?请在此处发布响应字符串,这将有助于更好地理解问题。@SubratPadhi您知道我会说什么,而不是我说的过时的答案吗?问题就在这里。似乎正在第一个观察闭包中填充PackedNumber字符串。该闭包是异步的,在第二个观察者尝试使用它之前,它实际上可能不会返回数据来填充packedNumberString。此外,如果这个ref.child(“(packedNumberString)”)是一个字符串,那么它可能是不必要的,并且可能被写为ref.child(packedNumberString)——而且,这看起来很奇怪,因为它将引用firebase_ref/xxxxxx,而不是另一个父节点的子节点。在这一点上,我可能是错的……请粘贴从firebase收到的输出,以及数据库的屏幕截图。请在此处发布响应字符串,这将有助于更好地理解问题。@SubratPadhi你知道我会说什么,而不是我说的过时答案吗?问题就在这里。似乎正在第一个观察闭包中填充PackedNumber字符串。该闭包是异步的,在第二个观察者尝试使用它之前,它实际上可能不会返回数据来填充packedNumberString。此外,如果这个ref.child(“(packedNumberString)”)是一个字符串,那么它可能是不必要的,并且可能被写为ref.child(packedNumberString)——而且,这看起来很奇怪,因为它将引用firebase_ref/xxxxxx,而不是另一个父节点的子节点。在这一点上我可能错了……上面说“角色”被贬低了。我应该放什么@虽然这是一个答案,但这不是一个正确的答案,因为它确实没有解决实际问题。此外,直接将packedNumberString.filter与Swift 4一起使用,而不是在折旧时使用.characters。它表示“characters”已折旧。我应该放什么@虽然这是一个答案,但这不是一个正确的答案,因为它确实没有解决实际问题。此外,在折旧时,直接将packedNumberString.filter与Swift 4一起使用,而不是使用.characters。