有!我对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
。请帮忙。
答案 0 :(得分:1)
通过执行import 'firebase-admin'
和location: new admin.firestore.GeoPoint(51.435454, 31.445456),
,您正在尝试在JavaScript / Web应用程序(由Vue.js构建)中使用Admin SDK。
这不是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,