那里!我对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
中定义。请帮忙。
通过执行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/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,