Как проверить, существует ли значение в действующей базе данных Firebase с помощью функций Firebase? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь настроить работающую базу данных через firebase и проверить, существует ли в ней случайное значение с использованием функций Firebase. Любая помощь будет принята с благодарностью.

Я попробовал приведенный ниже код, но в итоге получил «необработанное событие ошибки».

const functions = require('firebase-functions');
const admin = require('firebase-admin');

exports.Exists = functions.https.onRequest((request, response) => {
  console.log("Hello from Firebase!");
   var result           = '';
   var characters       = 'ABCDEFGHIJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
   var charactersLength = characters.length;
   for ( var i = 0; i < 4; i++ ) {
      result += characters.charAt(Math.floor(Math.random() * charactersLength));
   }
   return admin.database().ref().once(result).then(snap => {
  if (snap.exists()) {
    response.send("exists");
  }else{
      response.send(result);
  }
});
  • FireBase Name
    • Значение
    • Значение
    • Значение

Ответы [ 2 ]

1 голос
/ 30 апреля 2019

Вы перепутали вызов базы данных, это должно быть

admin.database().ref(result).once('value').then(snap => ...)
  • result - это ключ, который вы ищете
  • value - это событие, которое вы прослушиваете «один раз», вы также можете продолжать прослушивать изменения значений с помощью ref().on('value', callback)

Вот соответствующий раздел из документации: https://firebase.google.com/docs/database/web/read-and-write#read_data_once

0 голосов
/ 01 мая 2019
const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.test = functions.https.onRequest((request, response) => {

    return ExistTest();


    function RandCharGen(length){

        var result = '';
        var characters = 'ABCDEFGHIJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
        var charactersLength = characters.length;

        for ( var i = 0; i < length; i++ ) {
            result += characters.charAt(Math.floor(Math.random() * charactersLength));
        }

        return result;
    }

    function ExistTest(){
        var result = RandCharGen(4);
    admin.database().ref(result).once('value', (snapshot) => {
          if (snapshot.exists()) {
              ExistTest();
        }
        else{
                response.send(result);
            return result;
        }
        });
    }
});

Для тех, кто хочет получить правильный ответ или знает, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...