Почему я не могу отправить данные в Firebase из node.js? - PullRequest
0 голосов
/ 12 сентября 2018

Я начинаю проект с node.js и базой данных Firebase в реальном времени, который разрабатывает REST API. Я изо всех сил пытался соединиться и отправить данные в базу данных. Поскольку я намерен использовать структуру MVC, я планирую выделить свою модель, как показано в файле user.js ниже. Пожалуйста, посмотрите на мой код:

/* user.js */

function User (id, firstName, lastName) {
    this.id = id;
    this.firstName = firstName;
    this.lastName= lastName;
}

const config = {
    apiKey: "....",
    authDomain: "....",
    databaseURL: "....",
    projectId: "....",
    storageBucket: "....",
    messagingSenderId: "...."
}

const firebase = require('firebase');
firebase.initializeApp(config);
const database = firebase.database();
const userRef = database.ref('/users');

User.prototype.post = () => {
    console.log(this.id);

    //just to test whether the database is connected
    //ref: https://firebase.google.com/docs/database/web/offline-capabilities
    userRef.on("value", function(snap) {
        if (snap.val() === true) {
          console.log("connected");
        } else {
          console.log("not connected");
        }
      });

    userRef.child(this.id).set({
        firstName: this.firstName,
        lastName: this.lastName
    });
}
module.exports = User;

/* index.js */

const User = require('./user')
const express = require('express');
const app = express();
app.use(express.json());

app.get('/users', (req, res) => {
    const {id, firstName, lastName} = req.body;
    const user = new User (id, firstName, lastName);
    //console.log(user);
    user.post();
    res.send("Success!");
}

const port = 3000;
app.listen(port, () => console.log(`Listening on port ${port}`));

Когда я пытаюсь отправить запрос POST, данные не отправляются в базу данных firebase. Я также получаю "not connected" за код, который проверяет, подключена ли база данных (см. user.js). Может кто-нибудь, пожалуйста, подскажите мне, где я иду не так? Любая помощь будет принята с благодарностью.

P.S: Я должен упомянуть, что когда я пытаюсь сделать все в одном index.js файле, это работает нормально. Однако я хочу выделить модель user.js.

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