Отправка данных угловой формы в облаке firestore с помощью nodejs - PullRequest
0 голосов
/ 11 июля 2019

У меня есть угловое приложение, созданное исключительно для внешнего интерфейса, а Akveo / ngx-admin используется в качестве шаблона для создания внешнего интерфейса.Теперь у меня есть форма с несколькими полями и флажками, и я хочу отправить эти данные формы в облако firestore, но бэкэнд сделан с использованием облачных функций nodejs.Поэтому я хотел бы вызвать функцию внутри nodejs с данными формы в качестве параметра, и эти данные будут добавлены в хранилище.Я новичок в облачной функции Firebase, поэтому мне очень хотелось бы получить объяснение или немного помощи по коду

scheduleclass.component.html

<div class="row">
  <div class="col-md-12">
    <nb-card>
      <nb-card-header>Schedule a Class</nb-card-header>
      <nb-card-body>
        <form class="form-horizontal">
          <div class="form-group row">
            <label for="inputEmail3" class="label col-sm-3 form-control-label">Course</label>
            <div class="col-sm-6">
              <nb-select selected="1">
                <nb-option value="1">Choose an option</nb-option>
                <nb-option value="2">hjsdjfiu bsifsl nnsflsnf fshls</nb-option>
                <nb-option value="3">Option 2</nb-option>
              </nb-select>
            </div>
          </div>
          <div class="form-group row">
            <label for="inputPassword3" class="label col-sm-3 form-control-label">Client</label>
            <div class="col-sm-6">
              <nb-select selected="1">
                <nb-option value="1">Choose an option</nb-option>
                <nb-option value="2">hjsdjfiu bsifsl nnsflsnf fshls</nb-option>
                <nb-option value="3">Option 2</nb-option>
              </nb-select>
            </div>
          </div>
          <div class="form-group row">
            <label for="inputPassword3" class="label col-sm-3 form-control-label">Location</label>
            <div class="col-sm-6">
              <nb-select selected="1">
                <nb-option value="1">Choose an option</nb-option>
                <nb-option value="2">hjsdjfiu bsifsl nnsflsnf fshls</nb-option>
                <nb-option value="3">Option 2</nb-option>
              </nb-select>
            </div>
          </div>
          <div class="form-group row">
            <label for="inputPassword3" class="label col-sm-3 form-control-label">Instructor</label>
            <div class="col-sm-6">
              <nb-select selected="1">
                <nb-option value="1">Choose an option</nb-option>
                <nb-option value="2">hjsdjfiu bsifsl nnsflsnf fshls</nb-option>
                <nb-option value="3">Option 2</nb-option>
              </nb-select>
              <nb-checkbox style="margin-left: 10px;">Open for Bidding</nb-checkbox>
            </div>
          </div>
          <div class="form-group row">
            <label for="inputPassword3" class="label col-sm-3 form-control-label">Class Times</label>
            <div class="col-sm-6">
              <!-- <input type="text" nbInput fullWidth id="inputPassword3" placeholder="Times">
              <nb-select selected="1">
                <nb-option value="1">Choose an option</nb-option>
                <nb-option value="2">hjsdjfiu bsifsl nnsflsnf fshls</nb-option>
                <nb-option value="3">Option 2</nb-option>
              </nb-select> -->
              <ng2-smart-table [settings]="settings" [source]="source" (deleteConfirm)="onDeleteConfirm($event)">
              </ng2-smart-table>
            </div>
          </div>
          <div class="form-group row">
            <label for="inputPassword3" class="label col-sm-3 form-control-label">Price</label>
            <div class="col-sm-6">
              <input type="text" nbInput fullWidth id="inputPassword3" placeholder="Price">
            </div>
          </div>
          <div class="form-group row">
            <label for="inputPassword3" class="label col-sm-3 form-control-label">Total Hours</label>
            <div class="col-sm-6">
              <input type="text" nbInput fullWidth id="inputPassword3" placeholder="Total Hours">
            </div>
          </div>
            <div class="form-group row">
              <label for="inputPassword3" class="label col-sm-3 form-control-label">Max Students</label>
              <div class="col-sm-6">
                <input type="text" nbInput fullWidth id="inputPassword3" placeholder="Max Students">
              </div>
            </div>
            <div class="form-group row">
              <label for="inputEmail3" class="label col-sm-3 form-control-label">Listing</label>
              <nb-checkbox style="margin-left: 13px;"></nb-checkbox>
            </div>
            <div class="form-group row">
              <label for="inputPassword3" class="label col-sm-3 form-control-label">Close Registration ? Days Before Class Start Date</label>
              <div class="col-sm-3">
                <input type="text" nbInput fullWidth id="inputPassword3" placeholder="Days">
              </div>
            </div>
            <div class="form-group row">
              <label for="inputPassword3" class="label col-sm-3 form-control-label">Assistants</label>
              <div class="col-sm-6">
                <nb-select selected="1">
                  <nb-option value="1">Choose an option</nb-option>
                  <nb-option value="2">hjsdjfiu bsifsl nnsflsnf fshls</nb-option>
                  <nb-option value="3">Option 2</nb-option>
                </nb-select>
              </div>
            </div>
            <div class="form-group row">
              <label for="inputPassword3" class="label col-sm-3 form-control-label">Public Notes</label>
              <div class="col-sm-6">
                <textarea rows="5" nbInput fullWidth shape="round"  placeholder="Public Notes"></textarea>
              </div>
            </div>
            <div class="form-group row">
              <label for="inputPassword3" class="label col-sm-3 form-control-label">Internal Notes</label>
              <div class="col-sm-6">
                <textarea rows="5" nbInput fullWidth shape="round"  placeholder="internal Notes"></textarea>
              </div>
            </div>
          <div class="form-group row">
            <div class="offset-sm-3 col-sm-9">
              <button type="submit" nbButton status="danger">Back</button>
              <button style="margin-left: 10px;" type="submit" nbButton status="primary">Update Class</button>
            </div>
          </div>
        </form>
      </nb-card-body>
    </nb-card>
  </div>
</div>

index.js файл в приложении nodejs

var admin = require("firebase-admin");
const functions = require('firebase-functions');
var fetch = require("node-fetch");


var serviceAccount = require("../xxxxxxxxxxxxxxxxxxxxxxxxxxxx.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://xxxxxxxxxxxxxx.firebaseio.com"
});

const db = admin.firestore();

У меня нет функции записи данных в nodejs, но я хотел бы знать заранее, как я могу вызвать эту функциюот угловой

...