2017-08-04 39 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"])}