【发布时间】:2016-05-06 21:12:29
【问题描述】:
这是我在 Firebase 中的代码。
//Create a reference to a Firebase database URL
Firebase *savedRef2 = [[Firebase alloc] initWithUrl:@"https://example.firebaseio.com/Location_Coordinates"];
// Write data to Firebase
Firebase *postRef2 = [savedRef2 childByAppendingPath: @"LOCATION DATA"];
NSDictionary *post1 = @{
@"DATE": dateString,
@"Lat": @(location.coordinate.latitude),
@"Long": @(location.coordinate.longitude),
@"USER": name,
};
Firebase *post1Ref = [postRef2 childByAutoId];
[post1Ref setValue: post1];
当用户在应用程序上单击保存时,数据会保存到我的 Firebase 数据库中,但它会继续作为新对象保存在之前保存的下方。我怎样才能让它保存一次,其余保存的是第一次保存的数据的子项?
这是一张Current saved data for coordinates. 的图片,它是如何不断保存的,我不希望这样。我怎样才能使它看起来像这样2。我正在保存用户的坐标,但它一直在重新创建一个新的“childByAutoId”字符串,我只是希望保存的数据属于第一个“childByAutoId”字符串,而不是继续创建新的 ID,因此每个用户的坐标每次都属于一个 ID已保存。
更新: 我有不同的用户提交数据,其中数据是坐标。我希望使用“childByAutoID”仅在一个节点下创建相同的用户数据,其余数据(坐标)将在该节点下。它现在的设置方式是将多个节点(childByAutoId)记录到 Firebase,这让我很难阅读它,这就是为什么我希望首先创建一个节点(childByAutoId),其余节点属于每个节点有人点击保存的时间。 这就是我目前拥有的方式。 这就是我想要的
【问题讨论】:
-
ChildByAutoId 创建一个新的节点名称。因此,每次调用 [post1 setValue:post1] 时,代码都会在 LOCATION DATA 下创建单独的子节点。看起来您链接的两个图像实际上是相同的 - 如果您单击当前保存的图像中每个节点名称旁边的减号,它将像图像 2 中的那样。所以......代码似乎正在工作 - 可以你澄清了这个问题?
-
我只想创建 1 个新节点,然后将其余数据归入该节点。我怎样才能使它只创建一个节点,其余的作为子节点落入该特定新节点? @Jay
-
@CarlosAlan 在您写的问题中,您希望新创建的节点成为第一个创建的节点的子节点 - 这真的是您想要实现的吗?此外,您的两个结构在我看来都是一样的,您提供的代码完全创建了图 2 中的结构
-
我有不同的用户提交数据,其中数据是坐标。我希望使用“childByAutoID”仅在一个节点下创建相同的用户数据,其余数据(坐标)将在该节点下。它现在的设置方式是将多个节点(childByAutoId)记录到 Firebase,这让我很难阅读它,这就是为什么我希望首先创建一个节点(childByAutoId),其余节点属于每个节点有人点击保存的时间。 @pkacprzak
-
我用新图片更新了这篇文章,说明了它的现状和我想要的样子。 (我对第二张照片进行了Photoshop处理,说明我希望它的结构,这样它就可以是视觉的,而不是我试图打字)。 @Jay
标签: ios objective-c firebase firebase-realtime-database