这是我在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数据库中,但仍会保存为新对象,位于之前保存的位置正下方。如何使它保存一次,其余的保存为该第一次保存的数据的子项?
这是一张图片当前保存的坐标数据。如何保持储蓄,我不希望这样。我该怎么做,使其看起来像这样2。我正在保存用户的坐标,但是它会继续重新创建一个新的'childByAutoId'字符串,我只希望保存的数据属于第一个'childByAutoId'字符串,而不希望继续创建新的ID,因此每个用户的坐标每次都属于一个ID已保存。
更新:我有不同的用户提交数据,并且该数据是坐标。我希望仅使用“ childByAutoID”在一个节点下创建相同的用户数据,其余数据(坐标)将在该节点下。现在设置的方式是将多个节点(childByAutoId)记录到Firebase,这使我很难读取它,因此这就是为什么我要首先创建一个节点(childByAutoId),而其余节点都属于该EACH有人点击保存的时间。这就是我目前的情况。这就是我想要的
超级容易!
当用户进行身份验证时,auth Firebase变量将使用其用户ID进行填充。
通常,如果您要存储有关用户的信息,则可以存储该数据或将该数据与他们的uid相关联。
因此,当您要为每个用户存储数据时,请将其存储在父节点是其uid的节点中
Location_Coordinates
LOCATION DATA
uid_0
childByAutoId
childByAutoId
uid_1
childByAutoId
childByAutoId
然后创建参考
Firebase *rootRef = [[Firebase alloc] initWithUrl:@"https://example.firebaseio.com];
Firebase *locCoordsRef = [rootRef childByAppendingPath("Location_Coordinates");
Firebase *locDataRef = [locCoordsRef childByAppendingPath("LOCATION DATA"];
NSString *uid = rootRef.authData.uid
Firebase *thisUserRef = [locDataRef childByAppendingPath(uid)];
NSDictionary *userDataDict = @{
@"DATE": dateString,
@"Lat": @(location.coordinate.latitude),
@"Long": @(location.coordinate.longitude),
@"USER": name,
};
Firebase *dataRef = [thisUserRef childByAutoId];
[dataRef setValue: userDataDict];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句