前提・実現したいこと
FirestoreのDatabaseにAuthenticationに保存されているユーザー情報を保存したい。
開発環境
xcode 9.4
swift 4
SNSアプリを開発中
質問の詳細
現在、Swift4を使ってSNSアプリを作成しております。
FirestoreのDataBaseに投稿した内容を保存しているのですがその際、一緒にユーザー情報(displayName, photoURL, Uidなど)を保存しようとしています。
しかし、
let currentUser = Auth.auth().currentUser
を保存しようとすると
Unsupported type: FIRUser
というエラーが出てしまいます。
そのため、今は代わりにdisplayName, photoURL, Uidなどをそれぞれ別々に保存しております。
別々に保存することなく、ユーザー情報を保存することは可能でしょうか?
追記
- 現在のコード
func postStrings() { let currentUser = Auth.auth().currentUser //保存するデータをセット let post: [String: Any] = [ "category": category!, "postUid": currentUser.uid, "postUserName": currentUser.displayName!, "postUserPhotoURL": currentUser.photoURL!, "placeName": placeName!, "singleWord": singleWord!, "createDate": self.date ] SVProgressHUD.show() self.defaultStore.collection("Post").addDocument(data: post) { (error) in if let error = error { SVProgressHUD.showError(withStatus: error.localizedDescription) SVProgressHUD.dismiss() } else { SVProgressHUD.dismiss() SVProgressHUD.showSuccess(withStatus: "投稿完了") //閉じる self.dismiss(animated: true, completion: nil) } } }
今、ユーザー名、ユーザーIdを別々のコレクションに保存しています。("postUid","postUserName","postUserPhotoURL")
- やりたいこと
ユーザ情報をいちいち別々に保存することなく、まとめて「ユーザー情報」として保存したいです。
(ユーザー情報を同じコレクションに保存するイメージ)
userInfo |--uid |--displayName |--photoURL
また、以下のようにすると上記のエラーが出ます。(Unsupported type: FIRUser )
let post: [String: Any] = [ "userInfo": currentUser, ]
回答1件
あなたの回答
tips
プレビュー