オブザーバーを使用してfirebaseからデータを取得しようとしています。しかし、以前に作った配列に値を追加しようとすると失敗します。ここにコードは、誰かが私を助けてくれる?私はその配列 に値を追加しますが、それはあなたがFirebaseオブザーバが非同期であることを知っている必要がありますので、あなたが最初にそれを呼び出す場合でも、それは意志0swift3 firebase内でappend関数が動作しないobserveSingleEvent
1
A
答えて
0
を印刷した後
class ProductTableViewController: UITableViewController{
var productName:[String] = []
override func viewDidLoad() {
super.viewDidLoad()
fetchProduct()
print(self.productName.count)
}
func fetchProduct(){
let currentUserId = FIRAuth.auth()?.currentUser?.uid
FIRDatabase.database().reference().child("users").child(currentUserId!).child("products").observe(.value, with: { (snapshot) in
self.productName.append("Hello")
}, withCancel: nil)
}
それは1を印刷する必要があります応答を待つ必要があります。その間、あなたのアプリケーションはコードの残りの部分を続けるので、print関数を呼び出します。それを証明したい場合は、firebaseの呼び出しの中にプリントを入れてみてください:
class ProductTableViewController: UITableViewController{
var productName:[String] = []
override func viewDidLoad() {
super.viewDidLoad()
fetchProduct()
}
func fetchProduct(){
let currentUserId = FIRAuth.auth()?.currentUser?.uid
FIRDatabase.database().reference().child("users").child(currentUserId!).child("products").observe(.value, with: { (snapshot) in
self.productName.append("Hello")
print(self.productName.count)
}, withCancel: nil)
}
希望します!
+0
ありがとう、本当に助ける –
+0
ようこそ! –
関連する問題
- 1. Firebase observeSingleEventがトリガーしないSwift
- 2. PHP関数がJquery appendメソッドで動作していません
- 3. ターゲットセレクタがSwift3で動作しない
- 4. ポップアップモーダルのjavascript関数がItemCommand関数内で動作しない
- 5. Jquery append()が動作しない
- 6. スプリングブートログバックローリングファイルappend-erが動作しない
- 7. php fwrite appendが動作しない
- 8. Firebaseデータベース内のデータがobserveSingleEventで2回読み込まれる
- 9. firebase https関数が正常に動作しない
- 10. ループ内でPythonの関数内で動作しない
- 11. mysqli_queryがarray_map関数内で動作しない
- 12. Jquery attr()がクリック関数内で動作しない
- 13. window.locationがjs関数内で動作しない
- 14. C++で関数が動作しない
- 15. Firebaseデータがデータテーブルで動作しない
- 16. JTextArea要素でAppend()が動作しない
- 17. jquery onclickがappendタグで動作しない
- 18. .appendがfirefoxやsafariで動作しない
- 19. PHPのmysqli_real_escape_stringは()関数内で動作していない
- 20. .append a rowなぜ.onが動作しないのか?
- 21. 実際のプログラムをインストールすると、Firebase Push Notificationが動作しないのはなぜですか? Swift3
- 22. ローディング関数がjqueryのisonscreen関数で動作しない
- 23. ".isEmpty"が動作しないelseステートメントがある場合(swift3)
- 24. npmアップデート後にAngular4テンプレートバインディングがコンポーネント内の関数なしで動作しない
- 25. @ font-face関数が動作しない
- 26. c atoi()関数が動作しない
- 27. CodeIgniter - base_url()関数が動作しない
- 28. BinarySearch関数が動作しない
- 29. wordpress関数wp_link_pagesが動作しない
- 30. mysqliクエリ関数が動作しない
'print'行と' append'行にブレークポイントを設定します。今すぐコードを実行し、最初に呼び出されたコードに注目してください。 – rmaddy
これは、Firebaseリスナーが非同期であるためです。 Swiftでは、これに対処する方法について多くの例がオンラインで見つかるはずです。 –