Vue.js Firestore сохранить геопоинт - PullRequest
0 голосов
/ 04 сентября 2018

есть! Я очень новичок в Vue.js и JavaScript вообще. Я изучаю руководство YouTube, чтобы понять, как оно работает, но я столкнулся с проблемой, когда не могу добавить GeoPoint в свою базу данных Firestore.

Вот что у меня есть:

firebaseInit.js

import firebase from 'firebase'
import 'firebase-admin'
import firebaseConfig from './firebaseConfig'
import { scrypt } from 'crypto';
const firebaseApp = firebase.initializeApp(firebaseConfig)
export default firebaseApp.firestore()

и script в связанном .vue файле:

<script>
import db from "./firebaseInit";
 ...
 greet: function(event) {
  db.collection("events_test").add({
    name: this.name,
    ...
    location: new admin.firestore.GeoPoint(51.435454, 31.445456),
    phone: this.phone
    },
    originalUrl: this.originalUrl,
    createdAt: new Date(),
    updatedAt: new Date()
  })
  .then(docRef =>{
      alert(docRef.id)
  })
  .catch(error => {
       alert(error)
  });
  <script>

new admin.firestore.GeoPoint(51.435454, 31.445456) эта инициализация не работает для меня. А также new GeoPoint(lat,lng) и firebase.firestore.GeoPoint(lat,lng). Я всегда получаю ReferenceError, что это не определено в Vue.Component. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 04 сентября 2018

Делая import 'firebase-admin' и location: new admin.firestore.GeoPoint(51.435454, 31.445456),, вы пытаетесь использовать Admin SDK в JavaScript / веб-приложении (созданном с помощью Vue.js).

Это не цель Admin SDK, которая «позволяет вам взаимодействовать с Firebase из привилегированных сред », то есть с сервера, который вы обычно полностью контролируете. Смотрите документ для более подробной информации: https://firebase.google.com/docs/admin/setup и https://firebase.google.com/docs/reference/admin/

В вашем случае вы должны использовать «стандартный» JavaScript SDK для создания GeoPoint (см. https://firebase.google.com/docs/reference/js/firebase.firestore.GeoPoint), выполнив:

<script>
import firebase from 'firebase/app'
import db from "./firebaseInit";
 ...
 greet: function(event) {
  db.collection("events_test").add({
    name: this.name,
    ...
    location: new firebase.firestore.GeoPoint(51.435454, 31.445456),
    phone: this.phone
    }
  ....

Обратите внимание, что вам нужно импортировать firebase/app в ваш компонент.


Обратите внимание, что, похоже, в

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