いつもお世話になっています。
ストーリーボード未使用で開発しています。
行いたい方法
①画像のファイル名にuuidStringを使用し、Cloud storageにアップロードする
②Firestoreのデータ内に上記の画像のパスを入れておく
③呼び出すときはFirestoreのデータ内からパスの情報を取得してアクセスする
できていること
下記コード⓪で、storageで画像を参照できているので、上記の①までできています。
//コード⓪ func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String:Any]) { if let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage { self.hogehogeImageView.image = pickedImage } let storage = Storage.storage() let storageRef = storage.reference(forURL: "gs://hogehoge.appspot.com") let meta = StorageMetadata() meta.contentType = "image/jpeg" if let data = UIImagePNGRepresentation(info[UIImagePickerControllerOriginalImage] as! UIImage) { let userID = Auth.auth().currentUser?.uid let reference1 = storageRef.child( "huga_image/" + userID! + "/" + NSUUID().uuidString + ".jpg") reference1.putData(data, metadata: meta, completion: { metaData, error in print(metaData) print(error) }) dismiss(animated: true, completion: nil) } picker.dismiss(animated: true, completion: nil) }
実現したいこと
storageで参照できるようになった後に、FireStoreに
"gs://" + bucket + fullPathというStringをデータに保存する処理をし、保存出来ています。
このStringにしたのは、
Firebaseコンソールの(ストレージの場所)のURLと全く同じ文字列にすれば、上記の②と③をクリアできると思ったからです。
ですが、よく見るとそれぞれのuuidStringが異なることに気づきました。
これだと上記の②と③をクリアできないです。
uuidString以外で設定に使える相応しい文字列が自分では思いつかない為、
どういったものだと一致する文字列を実現できるのかお聞きしたいです。
見ていただければ助かります。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー