2017-12-02 3 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

감사합니다. 두 번째 방법으로 나열한대로 배경 가져 오기 작업했습니다. –

+0

Wonderful! 해피 내가 도와 줄 수 =) –

+0

더스틴, 여기서 개인적으로 메시지를 보내는 방법이 있습니까? 나는 정말로 도움이 될 수 있고 한 달 동안 붙어있다. 고마워요. –