2016-10-22 81 views
1

我在iPhone應用程序中創建了一個登錄和註冊頁面,並鏈接到firebase-Auth。我也有一個視圖控制器,人們可以提交文本。我想知道當用戶第一次提交時是否有辦法啓動24小時計時器,因此當計時器達到0時,用戶可以再次提交。Firebase和計時器的更改基於時間的權限

回答

2

我猜測的是您正在使用按鈕來提交該文本因此,每當用戶單擊該按鈕時,都會向您的Firebase數據庫發送調用,並檢查上次發佈的時間戳,如果該時間戳超過24小時你讓用戶提交文本否則......

保存文本第一次

FIRDatabase.database().reference().child(FIRAuth.auth()!.currentUser!.uid).child("lastPostedText").setValue(["text" : "This is the text", "timeStamp " : Int(NSDate.timeIntervalSinceReferenceDate*1000)]) 

在每一個按鍵檢索數據點擊

FIRDatabase.database().reference().child(FIRAuth.auth()!.currentUser!.uid).child("lastPostedText").observeSingleEventOfType(.Value, withBlock : {(snapshot) in 
    if snapshot.exists(){ 

     if snapDict = snapshot.value as? [String:AnyObject]{ 

      let timeSince = snapDict["timeStamp"] as! Double 
      // Check the timeSince against NSDate, if it has been more than 24 hours then let him post the text else show him an alert t 
      } 
     }else{ 

     //User hasn't submitted even a single text yet 
     FIRDatabase.database().reference().child(FIRAuth.auth()!.currentUser!.uid).child("lastPostedText").setValue(["text" : "This is the text", "timeStamp " : NSDate.timeIntervalSinceReferenceDate]) 
    } 
)} 

snapDict會是這個樣子: -

lastPostedText:{ 
    text : ..., 
    timeStamp : 1234234556 

    } 

爲了找到你的currentdate和時間戳的差別看到這樣的回答: - https://stackoverflow.com/a/27184261/6297658

和轉換時間戳NSDate的,只是: -

var date = NSDate(timeIntervalSinceReferenceDate: timestamp) 

瞭解時間戳和當前日期時間戳之間的時間戳查詢:This answer

+0

首先感謝您的回答@Dravidian,雖然我有一些問題,包括 - 什麼是snapDict,如何檢查用戶是否有發佈前24小時! – Sam