2017-08-04 4 views
0

Guys これは私の最初のfirebaseベースのプロジェクトです。データベースのデータを大量に送信したいのですが、問題はボタンの最後の行だけをクリックすることですコードがお送り取得、私もしようとしましたが、関数内のすべての行と1つずつ、そして同じことが起こるそれらを呼び出す、唯一の最後の関数の仕事と、それはデータのsendは、こちらをクリックしてコード1つのボタンをクリックして複数のデータ行を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

質問を正しい方法で書式設定してください。 *最後の行のコードだけがsend *を返すのはどういう意味ですか?どの行ですか?また、あなたの質問をあなたのJSONデータベース構造とセキュリティルールで更新してください。また、 'if else'シナリオで使用している値があなたの望むものと一致する場合は、それを印刷してみてください。あなたがチェックしている大文字と小文字の値が '' 3''のように '' Int''でなく、 '' 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"])} 
関連する問題