2017-02-28 10 views
1

私は、FirebaseとFirebaseにはかなり新しいです。私はこのようなデータベースを持っています:My database previewSwift 3でのFirebaseデータベースの設定とデータ処理

私は複数の注釈を持っており、私はそれらのデータベースに情報を渡す必要があります。この時点では、データを辞書として読み込んでアノテーションに渡すのとちょっと混乱しました。 これは私がデータベースと使用配列を使用しなかったとき、私の前のコードだった:

for i in 0...2 
    { 
     let coordinate = coordinates[i] 
     let point = myAnnotation(coordinate: CLLocationCoordinate2D(latitude: coordinate[0] , longitude: coordinate[1])) 
     point.name = names[i] 
     point.address = addresses[i] 
     point.hours = hours[i] 
     point.phones = phones[i] 

     self.mapView.addAnnotation(point) 
    } 

あなたは私のためにそれをコーディングする必要はありませんが、私は、少なくともいくつかのヒントを必要としてください。

+0

あなたが試しているfirebaseベースコードを表示してください。 –

答えて

1

私は私のfirebase上で同様のデータベースを持って、そして、私はこのようにそれを行うだろう:私、あなたのデータノードのそれぞれの子のためのループ、辞書として値をスナップパス、およびは読み

FIRDatabase.database().reference().child("Data").observe(.value, with: {(snapshot) in 
    if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] { 
     for snap in snapshot{ 
      if let dict = snap.value as? [String: Any] { 
       if let address = dict["address"] as? String,let lat = dict["lat"] as? String, let long = dict["long"] as? String, let name = dict["name"] as? String { 
        let coordinate = coordinates[i] 
        let point = myAnnotation(coordinate: CLLocationCoordinate2D(latitude: lat , longitude: long)) 
        point.name = name 
        point.address = address 

        self.mapView.addAnnotation(point) 
       } 
      } 
     } 
    } 
}) 

辞書と型はその値をキャストして形式が正しいかどうかを調べ、それを割り当てて配列に追加します。

+1

はい、これはまさに私がやろうとしていたものです。また、2つの小さな不正確1があります。LatとLongは "as Double"、2、単に線を削除しなければなりません "あなたの助けを借りて、ありがとうございます。 –

+0

喜んで:DええImはただの文字列を使っていたので、ダブルスを使う場所が分からなかったのです。 –

関連する問題