Firebaseを初めて使用していますが、プロバイダの写真URLを保存したいのですが、「NSNumber、NSString、NSDictionary、とNSArray。私は方法の異なる種類を試してみましたが、それはそれは私の方法Firebaseストアプロバイダの写真URL(NSURLタイプの値を変換できません)
func createFirebaseUser(){
let key = ref.child("user").childByAutoId().key
if let user = FIRAuth.auth()?.currentUser{
for profile in user.providerData{
let uid = profile.uid
let providerID = profile.providerID
let displayName = profile.displayName
let email = ""
let profilePicUrl = profile.photoURL
//let userDict :[String : AnyObject] = ["name": username!"profilePicUrl": profilePicUrl!]
let profile = Profile(uid: uid, displayName: displayName!,email: email, imageUrl: profilePicUrl)
let childUpdates = ["/user/\(key)": profile]
ref.updateChildValues(childUpdates, withCompletionBlock: { (error, ref) -> Void in
// now users exist in the database
print("user stored in firebase")
})
}
}
ある例let profilePicUrl = profile.photoURL as String
またはlet profilePicUrl = NSString(NSURL: profile.photoURL)
のために働いていないようで、それはあなたがすべき本当にデータモデル
import Foundation
class Profile {
private var _uid: String
private var _displayName: String
private var _email: String?
private var _gender: String!
private var _city: String!
private var _imageUrl: String!
var uid: String {
return _uid
}
var displayName: String {
get {
return _displayName
}
set {
_displayName = newValue
}
}
var email: String {
get {
return _email!
}
set {
_email = newValue
}
}
var gender: String {
get {
return _gender
}
set {
_gender = newValue
}
}
var city: String {
get {
return _city
}
set {
_city = newValue
}
}
var imageUrl: String {
get {
return _imageUrl
}
set {
_imageUrl = newValue
}
}
init(uid: String, displayName: String, email: String, imageUrl: String) {
_uid = uid
_displayName = displayName
_email = email
_imageUrl = imageUrl
}
私の質問にお答えいただきありがとうございます。 'FIRAuth.auth()。currentuser'からデータを取得したい場合。特定のデータではなく、データ辞書を 'provider.email'などに変更する必要がありますか? –
私はその質問を理解していませんが、currentUserには一意のID、プライマリ電子メールアドレス、名前、写真のURLがあります。したがって、電子メールを照会する必要がある場合は、それ以外の場合は検索できないため、/ users/uidノードに格納することもできます。だから私の例では、それは単なる一般的な電子メールのプレースホルダだったかもしれません。おそらく2番目のメールですが、あなたが望むもの – Jay