我正在尝试在 Firebase 中的单个数据库条目中合并两个 FBSDKGraphRequest 参数,以使其看起来与签名的用户相同电子邮件。
我想将Facebook的“ first_name ”和“ last_name ”合并到一个“ Full Name ”条目中。我已经尝试了我能想象到的每种语法,但我无法让它发挥作用。
目前它看起来像这样:
//.. Code that sets up the parameters and guard statement
let firstname = result["first_name"] as? String,
let lastname = result["last_name"] as? String,
let fullname = result["first_name","last_name"] as? String
//.. Code that saves details to db
名字和姓氏有效,但只要我将两者结合起来就不会执行保护块
答案 0 :(得分:2)
您不能在字典中使用两个单独的键并获取一个字符串。每个键都有自己独立的字符串。你可能想做这样的事情:
guard let firstName = result["first_name"] as? String else {
// Handle no first name
return
}
guard let lastName = result["last_name"] as? String else {
// Handle no last name
return
}
let fullName = "\(firstName) \(lastName)"
换句话说,您需要使用string interpolation编写组合字符串的代码。结果字典中的任何内容都不会单独执行此操作。
旁注:似乎您需要更好地理解Swift词典(以及一般来说,Swift常量,变量和类型)的工作原理。我建议深入研究collection types文档。
答案 1 :(得分:2)
实际上,Facebook Graph API为用户提供了名为" name"的字段。它是您需要的全名。
但是如果你想在不使用guard
的情况下使用firstName和lastName,请尝试:
if let firstName = result["first_name"] as? String, let lastName = result["last_name"] as? String {
var fullName = firstName + " " + lastName
}