2017-09-16 88 views
-1

請讓我對android應用程序開發非常新穎。我正在嘗試開發一項遊戲,在某個任務完成時向用戶提供獎勵。但真正的問題是如何將用戶獲得的硬幣存儲到數據庫中。我不知道該怎麼去做。是否有可能使用Firebase來實現這一目標?或者我必須學習sql才能實現這一壯舉。任何幫助將深表感謝。將獲得的獎勵存入Firebase數據庫

回答

0

您絕對可以使用Firebase構建您的項目。通過使用交易,您可以在完成任務時更新特定用戶的硬幣數量。這是爲了防止你的計數一次遞增多次當用戶在同一時間,例如完成幾項任務:

// Check that your current user object is not nil: 

    guard let currentUserId = Auth.auth().currentUser?.uid else { 
     return 
    } 

    // Run the transaction block on your user node using his/her id: 

    usersRef.child(currentUserId).runTransactionBlock ({ (currentData: MutableData) -> TransactionResult in 

     // Check if your data is here 

     if var data = currentData.value as? [String: Any] { 

      // Get the current coins count: 

      var coinsCount = data["coinsCount"] as! Int 

      // Increment the current coins count by 100 (or whatever value that makes sense to you): 

      coinsCount += 100 

      // Set the new coins count: 

      data["coinsCount"] = coinsCount 

      currentData.value = data 

      // Return the transaction with the updated data: 

      return TransactionResult.success(withValue: currentData) 
     } 

     return TransactionResult.success(withValue: currentData) 

    }, andCompletionBlock: { (error, success, snapshot) in 

     // Completion Block: 

     guard error == nil else { 
      return 
     } 

     // Do some more things here if you need 

    }) 

您可以找到有關,在Firebase Documentation :)

+0

更多信息,所以,做我必須像onstart和onstop方法一樣添加firebase的東西?我也希望它更新,以便用戶在打開應用程序時看到它 –

+0

而我正在開發Android應用程序而不是iOS應用程序 –

+0

嗯這是一個問題的很多問題..我建議您先閱讀通過他們在Github上的Firebase文檔和示例項目。如果你仍然找不到任何可以幫助你的信息,那麼歡迎你在這裏創建更具體的問題:)。 – Alex