在 objective c 中从 firebase 检索数据
Retrieve data from firebase in objective c
我正在尝试从 firebase 检索数据,并且我正在使用 firebase 提供的指南,但我无法使用我的 firebase 数据库创建引用。
FIRDatabaseReference * ref = [[FIRDatabase alloc]
referenceFromURL:@"https://project-8326407164650950213.firebaseio.com"];
NSLog(@"%@",ref);
我正在使用此代码为我的数据库创建引用,但应用程序崩溃了。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
我是 iOS 的新手,也是第一次使用 firebase。请根据 firebase 指南告诉我解决方案。
Firebase *messagePath = [[Firebase alloc] initWithUrl:[NSString stringWithFormat:@"%@%@%@", MAIN_URL,MESSAGES_DIRECTORY,conversationId]];
[[messagePath queryLimitedToLast:10] observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSMutableArray *messages = [[NSMutableArray alloc] init];
[messages addObject:snapshot.value];
observingBlock(true,messages);
}];
- 这是获取节点数据和值的代码。首先使 url 直到你的节点。
- 如果您还有任何问题,请在此处添加评论。现在 swift.
中的 Firebase 聊天工作了几天
我不是 firebase 专家,但是当你在 Obj-C 中使用 class 时,你要么调用它的 class 方法(例如 [FIRDatabase database]
) ,或者您将首先分配并初始化它 ([[FIRDatabase alloc] <an initializer>]
),然后在实例上使用实例方法。
在您上面的代码示例中,我看到了一个没有初始化器的分配,这让我觉得您遗漏了一些东西。
如果我查看 iOS quick start,我会看到对 initWithURL
的调用,这是初始化程序之一。
你可以轻松做到。如果您想使用它获取所有信息,您可以这样做。确保您已经创建了数据库 public 然后不需要身份验证
@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);
}];
我的 Json 来自 Firebase
{
"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"
}
]
}
我正在尝试从 firebase 检索数据,并且我正在使用 firebase 提供的指南,但我无法使用我的 firebase 数据库创建引用。
FIRDatabaseReference * ref = [[FIRDatabase alloc]
referenceFromURL:@"https://project-8326407164650950213.firebaseio.com"];
NSLog(@"%@",ref);
我正在使用此代码为我的数据库创建引用,但应用程序崩溃了。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
我是 iOS 的新手,也是第一次使用 firebase。请根据 firebase 指南告诉我解决方案。
Firebase *messagePath = [[Firebase alloc] initWithUrl:[NSString stringWithFormat:@"%@%@%@", MAIN_URL,MESSAGES_DIRECTORY,conversationId]];
[[messagePath queryLimitedToLast:10] observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot) {
NSMutableArray *messages = [[NSMutableArray alloc] init];
[messages addObject:snapshot.value];
observingBlock(true,messages);
}];
- 这是获取节点数据和值的代码。首先使 url 直到你的节点。
- 如果您还有任何问题,请在此处添加评论。现在 swift. 中的 Firebase 聊天工作了几天
我不是 firebase 专家,但是当你在 Obj-C 中使用 class 时,你要么调用它的 class 方法(例如 [FIRDatabase database]
) ,或者您将首先分配并初始化它 ([[FIRDatabase alloc] <an initializer>]
),然后在实例上使用实例方法。
在您上面的代码示例中,我看到了一个没有初始化器的分配,这让我觉得您遗漏了一些东西。
如果我查看 iOS quick start,我会看到对 initWithURL
的调用,这是初始化程序之一。
你可以轻松做到。如果您想使用它获取所有信息,您可以这样做。确保您已经创建了数据库 public 然后不需要身份验证
@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);
}];
我的 Json 来自 Firebase
{
"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"
}
]
}