【问题标题】:Firebase return different values each time queryFirebase 每次查询返回不同的值
【发布时间】:2018-05-03 10:29:27
【问题描述】:

我正在使用 Firebase 来检查用户是否正在输入。

但每次我从 Firebase 查询值时。价值观的种类不同。我的意思是,有时值是一个数组、一个字典、一个具有空值的数组......所以当我试图解析那个值时,我的应用程序崩溃了。

这是我的代码:

- (void)listenUserTypingGate {

    __weak typeof(self)this = self;

    [[_userTypingRef queryOrderedByKey] observeEventType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
        if (this && snapshot.exists) {
            NSDictionary* typingData = snapshot.value;
            NSLog(@"ref: %@", _userTypingRef);
            NSLog(@"ref query: %@", [_userTypingRef queryOrderedByKey]);
            NSLog(@"data: %@", typingData);
        }
    }];
}

结果:

  • 我去对话1。它是一个数组

参考:https://testfir-199902.firebaseio.com/test-test/user_typing/0_1

参考查询:(/test-test/user_typing/0_1 { i = ".key"; })

数据:( { 头像 = ""; “用户打字”= 0; 用户名 = Oanh; }, { 头像 = ""; “用户打字”= 0; 用户名 = "B\U00e9o"; } )

  • 对话2:它是一个数组+空值

参考:https://testfir-199902.firebaseio.com/test-test/user_typing/2_3

参考查询:(/test-test/user_typing/2_3 { i = ".key"; })

数据:( "", "", { 头像 = ""; “用户打字”= 0; 用户名 = "H\U1ea1nh"; }, { 头像 = ""; “用户打字”= 0; 用户名 = "L\U00f9n"; } )

  • 对话 3:它是一本字典

参考:https://testfir-199902.firebaseio.com/test-test/user_typing/4_5

参考查询:(/test-test/user_typing/4_5 { i = ".key"; })

数据:{ 4 = { 头像 = ""; “用户打字”= 0; 用户名 = "Ti\U1ebfn"; }; 5 = { 头像 = ""; “用户打字”= 0; 用户名 = "L\U00ea"; }; }

这是我在 Firebase 上的结构:

【问题讨论】:

    标签: ios objective-c firebase firebase-realtime-database


    【解决方案1】:

    不要拍摄快照值。因为您的最后一个节点有一个子节点而不是一个值。

    所以你必须首先检索每个孩子作为快照,然后从特定孩子检索一个值..

    这里最后一个 Root 节点实际上是 0 和 1 而不是 0_1。

        NSArray*childs = snap.children;
        for(int i = 0, i < childs.count  , i++ )
        {
                FIRDataSnapshot*snap = childs[i]
                NSDictionary* typingData = snap.value;
                NSLog(@"ref: %@", _userTypingRef);
                NSLog(@"ref query: %@", [_userTypingRef queryOrderedByKey]);
                NSLog(@"data: %@", typingData);
    
    }
    

    【讨论】:

    • 啊。我明白。感谢您的帮助。
    猜你喜欢
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多