Vue.js Firestore保存了geopoint

问题描述 投票:0回答:1

那里!我对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中定义。请帮忙。

javascript firebase vue.js google-cloud-firestore
1个回答
1
投票

通过执行import 'firebase-admin'location: new admin.firestore.GeoPoint(51.435454, 31.445456),,您尝试在JavaScript / Web应用程序(使用Vue.js构建)中使用Admin SDK。

这不是Admin SDK的目标,它“允许您从特权环境与Firebase进行交互”,即来自您通常完全控制的服务器。有关更多详细信息,请参阅doc:https://firebase.google.com/docs/admin/setuphttps://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,
© www.soinside.com 2019 - 2024. All rights reserved.