2017-03-08 6 views
0

私は現在Firebaseデータベースからデータを取得してそれを独自の変数として設定しようとしていますが、各チャートの子は特定の日付と時刻です(yy.mm .dd.hms)。だから、私は必要なすべての日付を格納する配列を持っているが、私はスナップショットを呼び出すときにそれらを参照することはできません。私はエラーをスローするこれら2つの方法を試しました "(子:)空ではない文字列でなければならず、 '。' '#' '$' '[' または ']' '」配列を持つ子からFirebaseのスナップショットを受け取るSWIFT

var postCollection = [170802120618, 170802101427] //yy.mm.dd.hh.mm.ss 

ref.child("users").child(uid!).child("Posts").child(self.postCollection[indexPath.row]).observe(.value, with: { (snapshot) in 
       for item in snapshot.children{ 
        let snapshotValue = snapshot.value as? NSDictionary 
        let firstNameSnap = snapshotValue?["First Name"] as? String ?? "" 
    currentCell.nameLabel.text = firstNameSnap 
     } 
    }) 

var postCollection = [170802120618, 170802101427] //yy.mm.dd.hh.mm.ss 
let selection = self.postCollection[indexPath.row] 
ref.child("users").child(uid!).child("Posts").child(self.postCollection[indexPath).observe(.value, with: { (snapshot) in 
       for item in snapshot.children{ 
        let snapshotValue = snapshot.value as? NSDictionary 
        let firstNameSnap = snapshotValue?["First Name"] as? String ?? "" 
    currentCell.nameLabel.text = firstNameSnap 
     } 
    }) 

とデータベース・チャートはおおよそであること:

FIR{ 
    users{ 
     uid{ 
      username: UserName 
      Posts{ 
       170802120618{ 
        First Name: first 
       } 
      } 
     } 
    } 
} 

答えて

0

あなたは"ポスト"を印刷し、この

var post = [String]() 
ref.observe(.value, with: { (snapshot) in 
      for item in snapshot.children{ 
       self.post.append((item as AnyObject).key) 
     } 
    }) 

を試してみて、あなたが[ "170802120618"、 "170802101427"]

2

右。子キーを自動生成されたハッシュ値にします。 childByAutoId()を使用してこれらを作成できます。私があなたの場合は、その日付を文字列として保存し、必要に応じてそれらの文字列を解析します。

Posts { 
    -Kebfdajksthm { 
     first_name: "first", 
     post_date: "yymmddhhmmss" 
    } 
} 
+0

Iを取得します:何かは、以下の例になりますあなたが意味することを得るが、私はそれをどのように参照するのだろうか?私はcurrentUserまたはcurrentChildを使用することはできませんので、複数のユーザーに対してこれを実行しようとしています。 – itsTheJaguar

関連する問題