我正在尝试从Firebase检索字符串值,以获取具有唯一UID的每个用户名,该UID传递给函数,该函数返回用户的用户名。但是-由于firebase
ObserveEvent
在中closures
,我无法返回任何值,因为操作是 异步 发生的(?)。我想知道这是否是实现此目标的方法?
该函数如下所示:
func GetUsername(uid:String) -> String {
var username = String()
firebase.child("Users").child(uid).observeSingleEventOfType(.Value) { (snapshot:FIRDataSnapshot) in
username = snapshot.value!["Username"] as! String
}
return username
}
显然这是行不通的,但是我希望能够通过执行GetUsername(“ whatevertheidmightbe”)来获取数据。有想法吗?
您需要像这样创建完成处理程序
func GetUsername(uid:String , completion: (String) -> ()) {
firebase.child("Users").child(uid).observeSingleEventOfType(.Value) { (snapshot:FIRDataSnapshot) in
if let username = snapshot.value!["Username"] as? String
completion(username)
}
else {
completion("")
}
}
然后这样调用函数
self.GetUsername(str) { (name) -> () in
if name.characters.count > 0 {
print(name)
}
else {
print("Not found")
}
}
问题内容: 在目标C中,可以执行以下操作来检查字符串: 如何在Swift中检测空字符串? 问题答案: 现在具有使用以下命令检测空字符串的内置功能: Apple发行前文档:“字符串和字符”。
问题内容: 我必须检测一个字符串是否包含任何特殊字符。我该如何检查?Swift支持正则表达式吗? 我尝试了上面的代码,但是只有当我输入第一个字符作为特殊字符时,它才匹配。 问题答案: 您的代码检查字符串中是否没有字符来自给定的集合。您要检查的是给定集合中是否 没有 任何 字符: __ 您还可以使用正则表达式实现此目的: 该模式匹配的字符 不在 AZ,az或0-9范围内。 Swift 2更新: Sw
本文向大家介绍详解Swift中的函数及函数闭包使用,包括了详解Swift中的函数及函数闭包使用的使用技巧和注意事项,需要的朋友参考一下 一、引言 函数是有特定功能的代码段,函数会有一个特定的名称调用时来使用。Swift提供了十分灵活的方式来创建与调用函数。事实上在Swift,每个函数都是一种类型,这种类型由参数和返回值来决定。Swift和Objective-C的一大区别就在于Swift中的函数可以
在Kotlin中,可以从闭包的外部函数返回。 输出: 建立 在Swift中,return退出闭包的执行 输出: 建立 B C 完成 在Swift中有没有办法达到同样的效果?
问题内容: 我曾经在JavaScript中这样做: Swift没有此功能,如何做类似的事情? 问题答案: 编辑/更新: Xcode 11•Swift 5.1或更高版本 用法: 不区分大小写的样本 正则表达式样本
我有一个正在解析的JSON字符串,我想检索字段“pr_num”的值。我收到这个错误: 我的代码如下: 我想获取字段的值,它们是690052和null。 jsonString如下所述