Ios 从目标c中的firebase检索数据

Ios 从目标c中的firebase检索数据,ios,objective-c,firebase,firebase-realtime-database,Ios,Objective C,Firebase,Firebase Realtime Database,我正在尝试从firebase检索数据,我使用firebase提供的指南,但无法使用我的firebase数据库创建引用 FIRDatabaseReference * ref = [[FIRDatabase alloc] referenceFromURL:@"https://project-8326407164650950213.firebaseio.com"]; NSLog(@"%@",ref); 我正在使用此代码创建数据库引用,但应用程序崩溃 由于未捕获的异常“NSInvalidArg

我正在尝试从firebase检索数据,我使用firebase提供的指南,但无法使用我的firebase数据库创建引用

FIRDatabaseReference * ref = [[FIRDatabase alloc]
    referenceFromURL:@"https://project-8326407164650950213.firebaseio.com"];
NSLog(@"%@",ref);
我正在使用此代码创建数据库引用,但应用程序崩溃

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“***setObjectForKey:密钥不能为零”

我是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中使用一个类时,您要么调用它的类方法(例如
[FIRDatabase database]
),要么首先分配并初始化它(
[[FIRDatabase alloc],我看到一个调用,
initWithURL
,它是一个初始值设定项。

您可以轻松地完成此操作。如果您想使用此方法获取所有信息,您可以执行此操作。请确保您已将数据库公开,然后无需验证

@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"
      }
 ]
}

您好,firebase类现在无法访问,因为正如他们的文档中所述,它已被弃用。“您正在查看旧文档。它们已于2016年5月18日弃用。这些文档适用于Objective-C SDK的2.5.1及以下版本。请转到我们当前的文档,或参阅我们的iOS迁移指南。”@salmancs43我已经与FIRDATABASE聊天,并在swift最新版本中使用FIRAUTH对用户进行身份验证。我知道这是旧版本。我正在尝试检索数据,但我的代码没有进入完成块。我只想从firebase检索数据。没有用户身份验证或保存数据。请查看该链接。我发布了我的问题w完整的代码和数据库结构。@salmancs43我已经在您在评论中提供给我的链接上写了一个答案,请检查。您能解释一下您在obj cLooks中对数据库的引用做了什么吗?就像API再次更改一样:现在看起来您需要这样的东西:FIRApp*app=[FIRApp configure];[FIRDatabase databaseForApp:app];(抱歉,我无法在注释中设置代码格式——如果您想要更好的答案,请提出问题,而不是对松散相关的问题进行注释。;)