2017-12-02 19 views
0

私は、店舗が開いているときにユーザに通知するアプリをプログラミングして作業するのがかなり新しいです。私はデータを格納するfirebaseを使用していると私はローカルの通知を押すのではなく使用するために探しています。Firebaseを使用したローカル通知

私は自分のアプリケーションデリゲートをいくつかのオンラインソースに基づいて通知を送信するように設定していますが、その機能を呼び出す方法はわかりません。私はXcodeでスイフト4を使用しています。

import Firebase 

var refNotificationValue = DatabaseReference! 

@IBAction func openButtonClicked(_ sender: UIButton) { 
    // Alert Controller confirming actions 
    self.shouldSendNotification() 
} 

// DidLoad() 

refNotificationValue = database.database().reference().child("Notifications").child("enabled")  // set to yes 

// EndLoad() 

func shouldSendNotification() { 
    refNotificationValue?.observeSingleEvent(of: .value, with: { (snapshot) in 
     let dict = snapshot.value as! [String: Any] 
     let status = dict["enabled"] as! String 

if status == "yes" { 
     setToOpen() 
     sendNotification() 
} else { 
    setToOpen() 
    } 
}) 
} 

func sendNotification() { 
     ???????? 
} 

ありがとうございます!

答えて

0

データベースから開いている時間と閉じた時間を観察していると仮定すると、3つの方法があります。

)1.ノードサーバーを作成して監視し、通知を押します。このアプローチは複雑に聞こえますが、それはかなりシンプルで、私が行ったアプローチです。 firebaseにはdocumentationがあり、this oneのような素晴らしいチュートリアルがあります。

2.)this postのように、アプリデリゲートでバックグラウンドフェッチを使用します。これは定期的に行われるため、正確には適合しない可能性があります。

3.)firebase cloud functionsを使用して、ノードサーバーのジョブを実行します。方法は、this postをご覧ください。

hereのように、バックグラウンドでデータベース監視機能を維持することはできません。

+0

ありがとうございました!私はあなたの2番目の方法でリストされているように、バックグラウンドフェッチを取り組んだ –

+0

素敵な!幸い私は助けることができました=) –

+0

ダスティン、ここにあなたを個人的にメッセージする方法はありますか?私は本当にいくつかの助けを使うことができ、この1つの問題について1ヶ月間立ち往生しています。ありがとうございました –

関連する問題