当前位置: 首页 > 面试题库 >

Firebase snapshot.key没有返回实际密钥?

丁承德
2023-03-14
问题内容

我有一个查询,它根据用户ID搜索用户。

usersRef.queryOrderedByChild("email").queryEqualToValue(email).observeEventType(.Value, withBlock: { snapshot in
    if snapshot.exists() {
        print("user exists")
        print(snapshot.key)

该查询返回正确的用户,但是该行print(snapshot.key)从字面上返回单词“
users”,而不是实际的用户ID。print(snapshot)返回以下用户:

Snap (users) {
   DELyncz9ZmTtBIKfbNYXtbhUADD2 =     {
       email = "test3@gmail.com";
       "first_name" = test;
       "last_name" = test;
   };

我如何得到DELyncz9ZmTtBIKfbNYXtbhUADD2?我可以通过使用来获取电子邮件,let email = child.value["email"]但无法获取密钥,因为它不是命名属性。

谢谢!!

编辑:由于弗兰克的回答,更新了代码。得到ambiguous use of key

query.observeEventType(.Value, withBlock: { snapshot in
            print(snapshot.key)

            if snapshot.exists() {
                print("user exists")

                for child in snapshot.children {
                    print(child.key)

问题答案:

当您在某个位置运行查询时,结果将是匹配子项的列表。即使只有一个匹配项,结果也将是一个孩子的列表。

您正在打印所有结果子代的密钥。由于没有单一结果,因此SDK会打印您查询的位置/集合的键:users

您可能要寻找的是循环匹配的子项并打印其键:

let query = usersRef.queryOrderedByChild("email").queryEqualToValue(email)
query.observeEventType(.Value, withBlock: { snapshot in
    for child in snapshot.children {
        print(child.key)
    }
})


 类似资料:
  • 如果我们假设有如下所示的XML,那么match=“/”究竟返回什么?据我所知,它返回了一个虚构的顶级节点,它具有<代码> 测验xml

  • 加载样式表,并在用户单击按钮时将其应用于场景 调用getScene()返回null。 函数所在的类是场景的控制器和根节点,我使用SceneBuilder 2.0,并将类设置为加载fxml的控制器,它是一个。 问题代码是类中的一个成员函数,标记是这样的,我可以通过设置按钮来调用它。 完整的代码可以在https://github.com/SebastianTroy/FactorioManufactur

  • 如您所见,它将参数和的和保存在变量中,然后将包含它们的和的eax寄存器保存在变量中,就像函数返回值一样。 这样做是因为函数是用返回值定义的吗?

  • 问题内容: 以下代码似乎不起作用,即使该文件看起来很好也是如此。 在此先感谢您的帮助。 编辑:结果是我试图去Graphics.drawImage(images [0]);,它给了我一个空指针异常。这段代码可以很好地完成。 编辑:更改按建议移动if(!file.exists()),并将文件包装在输入流中。 问题答案: ImageIO.read(file); 如果找不到注册的 ImageReader,

  • null 这个截图演示了这个问题--在Google电子表格中,你可以看到一个非空的文件,同时你可以看到上面的导出链接: https://s3.amazonaws.com/ugc.letterfeed.com/115074632018380198157/9026814b8ff754744414a2c3ccf7bb1b.png 预期行为:最新修订的数据与我们在drive中看到的数据相同 实际行为:最新

  • 问题内容: 我想知道我们如何获得函数返回的值-python return语句实际返回的内容。 考虑以下代码: 调用时,我们获得了价值。 绑定整数对象。 这是什么意思?return语句实际上在这里返回什么?该对象?还是变量名?还是绑定到对象?或者是其他东西? 我们如何获得return语句返回的值? 问题答案: x绑定整数对象5。 是的,是一个持有对整数对象5的引用的变量,该对象也持有对该整数对象的引