4

Firestore 文档仅显示了如何使用设置 Firestore firebase-admin,在我看来这基本上是一个服务器端解决方案。即使我们谈论的是使用 Cloud Functions,它仍然是一个迷你服务器,在浏览器和数据库之间有一个额外的抽象层。我试图弄清楚如何进行与直接从浏览器代码访问实时数据库类似的设置。

进入YouTube 5 分钟:开始使用 Web 上的 Cloud Firestore | 谷歌提供的完整教程,我看到使用的正是这种类型的配置,除了现在初始化应用程序后,我们调用firestore()方法而不是database()方法来获取根引用。

我已经在打开 firestore 的情况下重新初始化了项目,并且当前设置了项目规则以允许任何人访问它。但对我来说,该firebase()方法不包含在我的 firebase 实例中。

const firebase = require('firebase')

const config = {
  apiKey: 'long_ugly_string',
  authDomain: 'my_app_id.firebaseapp.com',
  databaseURL: 'https://my_app_id.firebaseio.com',
  projectId: 'my_app_id',
}

firebase.initializeApp(config)

console.log(firebase.firebase) // undefined
const firestore = firebase.firestore() // TypeError: firebase.firestore is not a function

我还尝试创建一个 100% 全新的项目,以确保问题不是由实时数据库安装中残留的旧设置引起的。但是我对新项目有同样的问题。我的 firebase 实例以一个database()方法结束,但没有firestore()方法。

4

1 回答 1

4

感谢@Sidney 的评论,我能够解决这个问题。我实际上是在查看 node.js 选项卡,而不是文档中的 web 选项卡。缺少的元素是调用以require('firebase/firestore')使其对firebase模块可用。这是更正后的设置代码:

const firebase = require('firebase')
require('firebase/firestore') // *** this line was missing ***

const config = {
  apiKey: 'long_ugly_string',
  authDomain: 'my_app_id.firebaseapp.com',
  databaseURL: 'https://my_app_id.firebaseio.com',
  projectId: 'my_app_id',
}

firebase.initializeApp(config)

const firestore = firebase.firestore() 

// rest of code ...
于 2017-10-04T22:44:15.037 回答