Запрос REST Firebase через qwest

у меня есть база данных в реальном времени из 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.info(response);
      end = response[9386]["username"];
      console.info(end);
    });

первый вопрос: почему я должен избегать кавычек и знака доллара?

второй вопрос: как я могу получить «ключ» последнего элемента, который я проверяю в json (limitToLast = 1).

json-ответ выглядит так:

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

и я хочу получить "9386" в переменной.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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.info(Object.keys(response)[0]);

если я сделаю то, что вы сказали в 1. я получаю эту ошибку: /users.json?limitToLast=1&orderBy=%22.key%22 400 (неверный запрос) 2. работает нормально! Большое спасибо!

dstN 18.05.2019 17:02

А, у меня там опечатка. Это должно быть $key в вызовах REST API.

Frank van Puffelen 18.05.2019 17:26

да это не проблема. проблема в том, что он по-прежнему выдает Bad Request, потому что он не экранирует %22... я снова отредактировал, и теперь он работает... не знаю, что я изменил.

dstN 18.05.2019 17:29

по-прежнему не работает, если orderBy идет сразу после вопросительного знака. получил эту разметку сейчас: let db = 'https://checkblock.firebaseio.com/users.json?orderBy = "$key"‌​'; и я снова получаю ошибку неправильного запроса, если я пытаюсь добавить что-нибудь к нему через параметры

dstN 18.05.2019 18:58

Другие вопросы по теме