2017-01-19 11 views
0

私は2つのアプリ、ライダーとドライバを持っています(Firebaseの同じプロジェクト内にあります)。 Firebaseでプッシュ通知を設定する場合、どのように条件を設定できますか?例えば、ライダーが乗車を要求した場合、警報は運転手に受け入れまたは取り消しを促す。ドライバが要求を受け入れた場合、子供はref = FIRDatabase.database().reference()のようにデータベースに追加されます。Swiftの条件でFirebaseで通知をトリガする方法は?

ref.child("riders").child("RydeAccepted").child(usersname).setValue(data) 

をこの問題が発生した際に、通知を要求する旨のライダーのアプリが追加されているに送信されるように、私はそれを設定する方法を削除されましたか?

ご協力いただければ幸いです。

+0

これは実際にプッシュ通知を使用していますか?通常のFirebaseイベントを使用する方がはるかに簡単です。ドライバーにライダー、ドライバーの拒否(ライダーのアプリが観察しているノードに書き込まれている)が通知され、ライダーに警告されます。 – Jay

+0

@Jayいいえまだ利用していません。私は、各アプリが目的のアラートを取得するための最良の方法を考えようとしています。どうすればいい? – LizG

+0

あなたは私のコメントで言及したようにそれを行うでしょう。ドライバ観測者は、ライダーが要求を投稿したノードを受け入れ、拒否すると、それはライダーノード(彼らが観測している)にポストバックされます。つまり、すべてのドライバーが監視していて、それらのドライバー以外のドライバーを無視するノードの要求を持つのが最善でしょう。それを行う方法は100通りあるので、それは2つです。 – Jay

答えて

1

これ可能な構造は質問上記構成において

drivers 
    -Yuiu9jasjdasd 
     name: "driver 1" 
    -Huuajwiojiejw 
     name: "driver 2" 

riders 
    -Yij99js9skos 
     name: "rider 1" 
    -Y090jssiisss 
     name: "rider 2" 


rider_driver_requests 
    -Yuljai8jsid99jsds 
     requested_by_rider: "-Yij99js9skos" 
     for_driver: "-Yuiu9jasjdasd" 
     driver_response: "Pending" 
    -Y99mskksmnjndjnsj 
     requested_by_rider: "-Y090jssiisss" 
     for_driver: "-Huuajwiojiejw" 
     driver_response: "Accepted" 

構造を支援し、簡素化することが、rider_1はDRIVER_1から乗り心地を要求しましたが、彼らが行うとき、(まだdriver_responseの意志をDRIVER_1応答していません保留中から拒否または承認済みに変更)。

rider_2はdriver_2から乗車をリクエストしており、2番目のドライバーはすでに受け入れています。

ライダーとドライバーの両方がrider_driver_requestsノードを監視しており、そのノードの追加、変更、またはイベントの削除についてそれぞれ通知されます。

「このノードは巨大になる!」と言う前に、私はこれを次のように構成した理由は、ライダーが特定のドライバーを要求していない可能性があるということです。

そのエリア内のすべてのドライバーは、そのノードを観察して現在の位置(例えば、長い緯度)と乗車を要求したライダーの位置とを比較するように要求を通知したがります。

関連する問題