如何将autoID保存到创建的孩子?
问题描述:
我已阅读了许多关于将数据写入Firebase数据库的文章。但是,他们都不能解决我的问题。如何将autoID保存到创建的孩子?
我用autoID创建了一个对象,但是稍后要删除它,我需要创建对象的autoID。出于这个原因,我需要将autoID保存到该对象。它只是没有解决。
下面是代码:
@IBAction FUNC保存(_发件人:任意){
let Town = Stadt.text
let surface = Untergrund.text
let size = Groesse.text
let numberof = AnzToreKoerbe.text
let laenge = longitudeLabel.text
let breite = latitudeLabel.text
let street = Strasse.text
let Art = Platzart.text
var PlatzID = ""
var upload : [String : AnyObject] = ["Platzart": Art as AnyObject,
"Laengengrad" : laenge as AnyObject,
"Breitengrad" : breite as AnyObject,
"Stadt" : Town as AnyObject,
"Strasse" : street as AnyObject,
"Untergrund" : surface as AnyObject,
"Groesse" : size as AnyObject,
"AnzahlToreKoerbe" : numberof as AnyObject,
"PlatzID" : PlatzID as AnyObject]
ref?.child("Sportplatz").childByAutoId().setValue(upload)
PlatzID = (ref?.key)!
ref?.updateChildValues(["PlatzID" : PlatzID as AnyObject])
我试图保存密钥,因为一些文章建议,然后更新带有该键的孩子“PlatzID”。 当我创建一个新对象时,PlatzID仍然是空的。
感谢您的帮助。
答
不知道这是否能帮助你+我有点迟到的答案,但你可以得到和保存自动识别这样的:
let randomID = Database.database().reference().childByAutoId()
print(randomID.key)
只要您注册使用的FIRAuth类的应用,用户
+0
感谢您的迟交答案,我刚刚在几天前也看到了这种方法,不过谢谢! – AlexVilla147
,在完成处理程序中,您将获得一个'authData'对象。这个对象包含一个唯一的ID e,g'authData.uid'。该ID表示用户的电子邮件地址的散列值。您可以在用户使用用户名和密码登录您的应用后获得此uid值,然后稍后使用它来编写/读取/更新Firebase数据库。因此,您的Firebase数据库应该如下所示:用户/用户在客户登录时收到的uid以及您在数据库中保存的其他对象。 – bibscy
感谢您的回答。但是我没有'用FIRAuth创建我的对象。我想使用自动ID或创建类似的东西,我可以保存。我desperatly需要该ID能够从数据库中删除它们! – AlexVilla147
我能看到的唯一解决方案是查询数据库,获取所有对象,然后选择要显示和删除的对象。否则,你不能检索你不知道的东西。 Firebase树是键值对的JSON对象。你的密钥是生成的自动识别码,所以你不能得到你不知道的密钥的值。想想这样,我躲在我背后2个苹果,一个是读,另一个是绿色。你怎么能得到青苹果? 1你问我向你展示双手(你查询数据库并获得关键值对)2.你知道我手中有绿色/红色。希望这是有道理的 – bibscy