【问题标题】:How to save child value in Firebase using Objective-C如何使用 Objective-C 在 Firebase 中保存子值
【发布时间】:2016-08-23 04:51:34
【问题描述】:
我正在尝试使用 Firebase 在我正在开发的应用中保存少量用户数据。我想保存用户的邮政编码(他们将输入),然后让他们选择关注某些主题。
我目前正在保存邮政编码,但无法正确保存子数据。
谁能帮忙指出我接下来需要添加什么以允许将子数据从用户的邮政编码中保存下来?
#import "ZipCodeVC.h"
#import <FirebaseStorage/FirebaseStorage.h>
#import <FirebaseDatabase/FirebaseDatabase.h>
@interface ZipCodeVC ()
@property FIRDatabaseReference *ref;
@end
@implementation ZipCodeVC
- (void)viewDidLoad {
[super viewDidLoad];
self.ref=[[FIRDatabase database]reference];
[[self.ref child:@"Zip Code"] setValue:@"61354"];
}
@end
【问题讨论】:
标签:
ios
objective-c
firebase
firebase-realtime-database
【解决方案1】:
想通了!
#import "ZipCodeVC.h"
#import <FirebaseStorage/FirebaseStorage.h>
#import <FirebaseDatabase/FirebaseDatabase.h>
@import Firebase;
@interface ZipCodeVC ()
@property NSString *uid;
@property (strong, nonatomic) IBOutlet UITextField *zipcodeTextField;
@property FIRDatabaseReference *ref;
@end
@implementation ZipCodeVC
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)tappedSubmit:(id)sender
{
[[FIRAuth auth]
signInAnonymouslyWithCompletion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
if (!error) {
self.uid = user.uid;
self.ref=[[FIRDatabase database]reference];
//[[self.ref child:@"User ID"] setValue:uid]; old code that worked for creating main value
[self writeNewPost:self.uid zipcode:self.zipcodeTextField.text title:@"Test Title" body:@"Body"];
}
}];
}
- (void)writeNewPost:(NSString *)userID zipcode:(NSString *)zipcode title:(NSString *)title body:(NSString *)body
{
NSString *key = self.uid;
NSDictionary *post = @{@"uid": userID,
@"zip code": zipcode,
@"title": title,
@"body": body};
NSDictionary *childUpdates = @{[NSString stringWithFormat:@"/user/%@", key]: post};
[_ref updateChildValues:childUpdates];
}
@end