我是Firebase的新手。我尝试在数据库中获取数据,但我的代码无效。这是我的代码:
- (void) getData{
FIRDatabaseReference *ref = [[FIRDatabase database] reference];
//READ DATA
[[[ref child:@"buysell"] child:@"users"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSDictionary *dict = snapshot.value;
NSLog(@"%@",dict);
} withCancelBlock:^(NSError * _Nonnull error) {
}];
}
它无法跳入withBlock:^(FIRDataSnapshot * _Nonnull snapshot)
。什么似乎是错的?请帮我。感谢。
答案 0 :(得分:1)
将其移至viewDidLoad FIRDatabaseReference * ref = [[FIRDatabase database] reference];
检查是否根据文档配置了所有内容。
检查键名
如果一切正常,请尝试更改此设置 尝试使用observeSingleEventOfType而不是observeEventType
[[[self.ref child:@"buysell"] child:@"users"] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSDictionary *dict = snapshot.value;
NSLog(@"%@",dict);
} withCancelBlock:^(NSError * _Nonnull error) {
NSLog(@"%@", error.localizedDescription);
}];
如果上述3不起作用,请检查错误陈述
答案 1 :(得分:0)
您可以轻松完成。如果您想使用此方法获取所有信息,可以执行此操作。确保您的数据库是公开的
@property (strong, nonatomic) FIRDatabaseReference *ref;
在界面上定义属性
self.ref = [[FIRDatabase database] reference];
[self.ref observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSDictionary *usersDict = snapshot.value;
NSLog(@"Information : %@",usersDict);
}];
如果您想使用此功能获取特定部分,可以执行此操作
[[self.ref child:@"results"] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
NSDictionary *usersDict = snapshot.value;
NSLog(@"Info : %@",usersDict);
}];
我从Firebase获取的Json
{
"results" : [
{
"name":"test 1",
"URL" : "URL STRING"
},
{
"name":"test 1",
"URL" : "URL STRING"
},
{
"name":"test 1",
"URL" : "URL STRING"
},
{
"name":"test 1",
"URL" : "URL STRING"
}
]
}