Как преобразовать данные строкового типа в данные целочисленного типа из базы данных Firebase на языке ios & swift - PullRequest
0 голосов
/ 11 июня 2018

Сейчас я борюсь с преобразованием данных строкового типа в данные целочисленного типа и вычислением на быстром языке.Теперь можно получить данные из базы данных реального времени firebase, но когда я выхожу из части «code a», значение исчезает.И еще одна проблема заключается в получении двух строковых данных из базы данных Firebase Realtime и преобразовании их в целое число для использования минус вычисления.И конечная цель - показать результат расчета.Я уже пытаюсь исправить ошибку, дважды щелкнув сообщение об ошибке.Но я не могу решить проблему.Пожалуйста, дайте мне ответ, чтобы решить проблему.

import UIKit
import Firebase

class MainViewController:UIViewController{

   var dbRef : DatabaseReference?
   var databaseHandle:DatabaseHandle?

   override func viewDidLoad(){
      super.viewDidLoad()
  // Do any additional setup after loading the view.

      dbRef = Database.database().reference()

      var getData = [String]()
      var data = [String]()
      var calDate = 0

  // code a -------
     databaseHandle = dbRef?.child("bluetooth_No").observe(.childAdded,with: 
{ (snapshot) in //code
           let now = snapshot.value as? String

           if let actualData = now {
               getData.append(actualData)
           }
      }) 
  // code a------

      calData = Int(getData[2]) - Int(getData[3]) //This line is the error
}

1 Ответ

0 голосов
/ 11 июня 2018

В вашем коде вычисление выполняется до данных, полученных от firebase, потому что наблюдатели firebase являются асинхронными.

, поэтому производите вычисления после получения данных из firebase.пожалуйста, проверьте код ниже, может ли он вам помочь.

databaseHandle = dbRef?.child("bluetooth_No").observe(.childAdded,with:
{ (snapshot) in //code
    let now = snapshot.value as? String

    if let actualData = now {
        getData.append(actualData)
    }
    if getData.count > 3{
        calData = Int(getData[2])! - Int(getData[3])!
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...