2017-08-04 62 views
0

夥計這是我的第一個firebase的項目,我想發送一堆數據到數據庫,問題是當我點擊按鈕只有最後一行代碼獲取發送,我也試過,但在一個函數中的每一行,並通過一個叫他們一個,而同樣的情況,只有最後一個函數的工作,並將其發送的數據,這裏是上單擊代碼按鈕發送多個數據行到firebase點擊一個按鈕

@IBAction func Send(_ sender: Any) { 
    apperfun(); 
    dnamefun(); 
    docfun(); 
    servfun(); 
    pnamefun(); 
    pnumfun(); 
} 

和這裏的功能

func apperfun() { 
    if ap == "1" {self.ref.child("fullinfo").child(pname).setValue(["apperance": "Excellent"])} 
    else if ap == "2" {self.ref.child("fullinfo").child(pname).setValue(["apperance": "Good"])} 
    else if ap == "3" {self.ref.child("fullinfo").child(pname).setValue(["apperance": "Bad"])} 
} 

func dnamefun() { 
    self.ref.child("fullinfo").child(pname).setValue(["dname":dname]) 
} 

func docfun() { 
    if doc == "1" {self.ref.child("fullinfo").child(pname).setValue(["level": "Excellent"])} 
    else if doc == "2" {self.ref.child("fullinfo").child(pname).setValue(["level": "Good"])} 
    else if doc == "3" {self.ref.child("fullinfo").child(pname).setValue(["level": "Bad"]) 
     self.ref.child("bad").child(pname+phone).setValue(["level": "Bad"])} 
} 

func servfun() { 
    if serv == "1" {self.ref.child("fullinfo").child(pname).setValue(["performance": "Excellent"])} 
    else if serv == "2" {self.ref.child("fullinfo").child(pname).setValue(["performance": "Good"])} 
    else if serv == "3" {self.ref.child("fullinfo").child(pname).setValue(["performance": "Bad"])} 
} 

func pnamefun() { 
    self.ref.child("fullinfo").child(pname).setValue(["pname":pname]); 
} 

func pnumfun() { 
    self.ref.child("fullinfo").child(pname).setValue(["pnum":phone]); 
} 
    func receptionfun() { 
     if recep == "1" {self.ref.child("fullinfo").child(pname).setValue(["reception": "Excellent"])} 
     else if recep == "2" {self.ref.child("fullinfo").child(pname).setValue(["reception": "Good"])} 
     else if recep == "3" {self.ref.child("fullinfo").child(pname).setValue(["reception": "Bad"])} 
    } 
+0

爲了澄清,你是說只有'pnumfun()'曾經被調用,或無論哪個函數是最後,只有最後一個函數被調用?你是否在每個函數中加入了斷點來驗證它們沒有被調用? –

+0

請以正確的方式格式化問題。 *你的意思是*只有最後一行代碼發送*,哪一行?還用您的JSON數據庫結構和安全規則更新您的問題。如果它們符合你想要的,也可以嘗試在'if else'場景中打印你正在使用的值。如果您檢查的案例值是'Int',就像'3'而不是String'「3」',那麼我不會感到驚訝。 – Dravidian

+0

@JenPerson無論哪個函數是最後一個,只有最後一個函數被調用..當我設置斷點時,斷點之前的最後一個函數是唯一被調用的函數! –

回答

0

setValue會將該節點中的任何數據替換爲您正在設置的數據。你想使用更新。更新將替換密鑰(如果存在),或者將其添加到數據庫(如果不存在)。

你有這樣的:

if ap == "1" {self.ref.child("fullinfo").child(pname).setValue(["apperance": "Excellent"])} 

它應該是:

if ap == "1" {self.ref.child("fullinfo").child(pname).updateChildValues(["apperance": "Excellent"])}