通过qwest的REST Firebase请求

时间:2019-05-18 10:05:48

标签: javascript reactjs firebase rest firebase-realtime-database

我有一个来自firebase的实时数据库,其中包含9386个数据集(但将来可能会更改)

这就是为什么我想知道上一个事件的“关键”是什么。

这就是我当前试图使其了解的方式:(使用npm模块qwest)

    let order = "\u0022\u0024key\u0022";
    let dbUrl = "https://example.firebaseio.com/users.json?limitToLast=1&orderBy=";
    let end;
    qwest.get(dbUrl + order)
    .then(function(xhr, response) {
      console.log(response);
      end = response[9386]["username"];
      console.log(end);
    });

第一个问题:为什么我必须转义引号和美元符号?

第二个问题:我如何获取我要在json(limitToLast = 1)中检查的最后一项的“键”。

json响应如下:

{"9386":
 {
  "fromListA":"1",
  "fromListB":"0",
  "id":"9939",
  "lastChecked":"2019-05-09 03:18:05",
  "userid":"123456789",
  "username":"username"
 }
}

我想把v938bel中的“ 93​​86”拿出来。

1 个答案:

答案 0 :(得分:1)

  1. 由于您选择使用"来限制dbUrl字符串,因此无法在该字符串的值中使用"而不对其进行转义。定义字符串的一种更简单的方法是使用'对其进行定界:

    let dbUrl = 'https://example.firebaseio.com/users.json?limitToLast=1&orderBy="$key"';
    
  2. 要获取对象的键,请使用类似以下内容的

    Object.keys(response)[0]
    

var response = {"9386":
 {
  "fromListA":"1",
  "fromListB":"0",
  "id":"9939",
  "lastChecked":"2019-05-09 03:18:05",
  "userid":"123456789",
  "username":"username"
 }
}

console.log(Object.keys(response)[0]);