从 firebase 数据库中检索数据并在 Objective-C 中的 UITable 中显示
Posted
技术标签:
【中文标题】从 firebase 数据库中检索数据并在 Objective-C 中的 UITable 中显示【英文标题】:Retrieve data from firebase database and show in UITable in Objective-C 【发布时间】:2017-01-26 07:52:30 【问题描述】:我在 Firebase 中有以下数据库,
我正在尝试检索数据并在 UITable 视图中显示它们。首先,我想从数据库中检索协议。目前只有一个协议记录,但未来会有很多记录。我试过下面的代码
- (void)viewDidLoad
[super viewDidLoad];
// Uncomment the following line to preserve selection between presentations.
//self.clearsSelectionOnViewWillAppear = NO;
[[_firebaseDatabaseRef child:@"krib-60229"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *_Nonnull snapshot)
self.allSnapshot = [NSMutableArray array];
NSLog(@"%@",self.allSnapshot);
NSLog(@"%s","TestTestTest");
for(snapshot in snapshot.children)
[self.allSnapshot addObject:snapshot];
[self.tableView reloadData];
];
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
return 3;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return [self.allSnapshot count];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
FIRDataSnapshot *snapShot = [self.allSnapshot objectAtIndex:indexPath.row];
NSString *testText = snapShot.value[@"landlordDisplayName"];
cell.textLabel.text = testText;
// Configure the cell...
return cell;
我也没有得到任何检索或任何错误。我尝试放置 NSLog,但它们也没有打印。
【问题讨论】:
【参考方案1】:请尝试以下几行。
FIRDatabaseReference *rootRef= [[FIRDatabase database] referenceFromURL:[NSString stringWithFormat:@"%@/agreements",<database-url>]];
[rootRef observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot *snapshot)
if (snapshot.exists)
NSLog(@“%@”,snapshot.value);
];
【讨论】:
【参考方案2】:@property FIRDatabaseReference *ref;
"在上面声明这个 ref 属性"
self.ref=[[FIRDatabase database] reference];
[[_ref child:@"your_child_name"] observeEventType:FIRDataEventTypeChildAdded withBlock:^(FIRDataSnapshot * _Nonnull snapshot)
if (snapshot.exists)
NSMutableDictionary *agreement = snapshot.value;
NSLOG(@"%@" , agreement)
withCancelBlock:^(NSError * _Nonnull error)
NSLog(@"%@", error.localizedDescription);
];
这对我有用!
【讨论】:
以上是关于从 firebase 数据库中检索数据并在 Objective-C 中的 UITable 中显示的主要内容,如果未能解决你的问题,请参考以下文章
Swift:从 Firebase 检索数据并在表格视图中显示
从 firebase 检索数据并将其显示在可扩展的 recyclerview 中
我需要将当前日期与其他数据一起添加到 firebase Realtime 数据库,并在 kotlin android 中检索所有带有日期的数据