Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。//ここでは値がうまくセット出来てない}この処理でデータの取得まではできているんですが、(print(self.friendId!)はコンソール上に正しく表示されます)この処理のあと、self.guideIdを呼び出すことができません。}何が問題かわかる方いらっしゃいましたら教えていただきたいです。票1非同期メソッドから取得した結果の使い方が間違っています。print(self.friendId!)}これはobserveSingleEvent(of:with:withCancel:)メソッドに「処理が完了したらこれを実行してくれ」と言う意味で渡されるだけですぐには実行されず、メソッドは一旦終了し、次の行の実行が始まります。その時点では、上記のクロージャは実行されていないのですから、print(self.friendId)としても、値はセットされていない方が普通です。非同期メソッドから取得した値は、必ず完了ハンドラの中で使うと言うのがセオリーです。//(長くなるなら別のメソッドを作って、それを呼んでも良い)}iOSでは、Firebaseに限らず非同期処理が非常に多用されますから、このセオリーを覚えておかないと、まともに動くアプリが作れないことになります。Firebaseに限らなければ、実は同じ非同期処理が原因でうまくいかないと言う事例はここ日本語版スタック・オーバーフローにもいくつも見つかります。ご質問が編集されましたので、もう少し追記。取得したself.friendIdは「別のデータ取得の際のパスの指定に使いたい」と言うことのようですが、「長くなる」と言うほどの長さではないので、「別のデータ取得」の処理全体を完了ハンドラの中に書いてやればいいでしょう。ご質問のタイトルにあるような「プロパティにセット」する必要さえないように思われます。}正しく動くアプリを作るために大変重要なことから、みんなが守っている習慣までいろんなレベルのものがごちゃ混ぜですが、いくつか気付いたことを。Swiftでは大文字始まりの識別子を使うのは型名だけです経験のあるSwiftプログラマの間では大変よく守られているルールです。逆に言うと、これを守っていないコードを見かけたら、それだけで信頼できるコードかどうか疑ってみた方がいいでしょう。あなたのPathはpathに書き換えさせてもらいました。Stringの結果はOptional<String>型になりますOptionalのまま続きの処理を行うと色々弊害がありますから、guard文なんかを使って、早めに安全な方法でアンラップしておきましょう。Optional型の使用は可能な限り避けるべきです。今回のようにnilになりうるなら明示的なOptional型(String?型)を使うべきです。self.friendIdがOptional型の場合、変な結果になります。(今のSwiftだと警告が出るので気付くはずですが。)UI部品の更新は必ずメインスレッド(UIスレッド)内で行うこれはiOSプログラミングの基本ですが、今回のような非同期メソッドの完了ハンドラはメインスレッド以外から呼ばれるのが普通です。{...}で囲んでやってください。(ちなみにfriendNameLabelはUILabelでしょうが、それもどこにも書いてくれていませんね...。)実際のコードはもう少し複雑なのかもしれませんが、とりあえずご質問内容だけから分かる範囲でまとめるとこんな感じになります。何かあればご質問内容を再度編集するか、コメントをつけるかしておしらせください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。