Firebase:访问通过childByAutoID存储的数据

时间:2016-07-14 21:55:21

标签: swift firebase firebase-realtime-database

所以我的Firebase数据结构如下所示:

My JSON data structure

我的问题很简单。如何访问通过childByAutoID方法存储的ID,即它们的值的关键。我想这样做的原因是因为我想创建一个将保存ID的变量,这只是(childByAutoId生成的值),例如,如果你查看我的JSON数据结构图像,KMVrGnR76E6vrj61K21将被存储在变量和这一点。我当前的查询如下所示:

databaseRef.child("Jokes").observeSingleEventOfType(.Value, withBlock: { (snapshot) in

            let jokeId = snapshot.//something??? not .key as this returns Jokes


        })

我知道childByAutoId会生成一个唯一的标识符,但肯定有一种方法可以检索和存储该标识符(仅此一个,而不是所有的标识符),原因显而易见......

3 个答案:

答案 0 :(得分:2)

在这种情况下,

snapshot.key应该为每个笑话提供ID

答案 1 :(得分:2)

我有答案。要访问随机生成的autoId的密钥,您必须将其作为FIRDataSnapShot传递。

for snap in snapshot.children.allObjects {

            let id = snap as! FIRDataSnapshot

            print(id.key)

        }

这将为您提供随机生成的密钥。

答案 2 :(得分:0)

在for块中,joke.key将是当前孩子的id。

请参阅FIRDataSnapshot