2017-06-18 3 views
1

場所に基づいてFirebaseデータをフィルタリングするためにGeoFireを使用する予定です。私が開発を始めたばかりなので、これをどうやって始めたらよいかわかりません。別の「ユーザー」クラスのジオファイアとスウィフト

@IBAction func shareDidTap(_ sender: Any) { 
      if let image = image, let caption = textView.text { 
       let newMedia = Media(type: "image", caption: caption, createdBy: user, image: image) 
        newMedia.save(completion: { (error) in 
         if let error = error { 
          self.alert(title: "Oops!", message: error.localizedDescription, buttonTitle: "OK") 
         } else { 
          self.user.share(newMedia: newMedia) 

(MVC)私はインスタンス化しません

func share(newMedia: Media) { 
      DatabaseReference.users(uid: uid).reference().child("media").childByAutoId().setValue(newMedia.uid) 
     } 

でFirebaseにそれを保存します。私は、私は1つのクラスにおいて作成PICやキャプションなどを持っていますGeoFireリファレンス?自分のLatとLonを取得するためにCore Locationを使用する必要がありますか?どんな助けもありがとう。ありがとうございました。 その後pod 'GeoFire', :git => 'https://github.com/firebase/geofire-objc.git'

import GeoFire

は、現在のユーザの位置を取得するには

let rootRef = Database.database().reference() 
let geoRef = GeoFire(firebaseRef: rootRef.child("user_locations")) 

を使用して、それへの参照を作成して投影するインポートポッドで

答えて

0

追加GeoFire

インストールします使用することができますロケーションマネージャー via cocoa pods:https://github.com/varshylmobile/LocationManager

データベースに保存されたメディアに場所があることを推測しています。 GeoFire.setlocation 投稿をデータベースに保存すると、GeoFireは投稿IDを使用して場所を追加するデータベース構造を処理します。あなたはその後、あなたが与えられた場所(ユーザーの場所)からの内部データベースを照会したいどのくらいの半径を与えることができますCircleQuery を使用して場所のデータベースを照会

geoFire!.setLocation(myLocation, forKey: userID) { (error) in 
     if (error != nil) { 
      debugPrint("An error occured: \(error)") 
     } else { 
      print("Saved location successfully!") 
     } 
    } 

例:

let query = geoRef.query(at: userLocation, withRadius: 1000) 

query?.observe(.keyEntered, with: { key, location in 
    guard let key = key else { return } 
    print("Key: " + key + "entered the search radius.") 
}) 
私が使用し

A本当に良いチュートリアルは:さらにあなたを助けるかもしれない他のビデオのための自分のチャンネルとクエリGeoFirehttps://www.youtube.com/watch?v=wr19iKENC-k&t=600s

ルック。

関連する問題