【发布时间】:2017-07-17 09:29:11
【问题描述】:
我在这个网站上阅读了很多文章,这些文章主要关注将数据写入 Firebase 数据库。但是,它们都不能解决我的问题。
我创建了一个带有 autoID 的对象,但是稍后要删除它,我需要我创建对象时使用的 autoID。出于这个原因,我需要将 autoID 保存到该对象。它只是行不通。
代码如下:
@IBAction func Save(_ sender: Any) {
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 仍然是空的。
感谢您的帮助。
【问题讨论】:
-
每当您使用 FIRAuth 类在您的应用中注册用户时,在完成处理程序中您将获得一个
authData对象。该对象包含一个唯一 ID,例如authData.uid。此 ID 表示用户电子邮件地址的哈希值。您可以在用户使用用户名和密码登录您的应用程序后获取此 uid 值,然后稍后使用它来写入/读取/更新您的 Firebase 数据库。因此,您的 Firebase 数据库应如下所示:用户/客户登录时收到的 uid/以及您保存在数据库中的其他对象。 -
感谢您的回答。但是我还没有使用 FIRAuth 创建我的对象。我想使用自动 ID 或创建类似的东西,我可以保存。我迫切需要该 id 才能从数据库中删除它们!
-
我能看到的唯一解决方案是查询数据库,获取所有对象,然后选择要显示和删除的对象。否则,您将无法检索您不知道的内容。 Firebase 树是键值对的 JSON 对象。您的密钥是生成的 autoID,因此您无法获取您不知道的密钥的值。这么想,我背后藏了2个苹果,一个是读的,一个是绿色的。你怎么能得到青苹果? 1 你让我向你展示双手(你查询数据库并获取键:值对) 2. 你知道我在哪只手上有绿色/红色的那只手。希望有意义
标签: ios firebase swift3 firebase-realtime-database