【问题标题】:Can I run Firebase Functions locally?我可以在本地运行 Firebase 函数吗?
【发布时间】:2021-04-09 10:30:26
【问题描述】:

可以在我的笔记本电脑上使用firebase-functions 吗?如果没有,firebase-admin 是唯一剩下的选择吗?

这里有一些例子:

我可以在我的笔记本电脑上创建一个index.js 文件,npm install firebase-admin 模块,链接到我的 Firestore 数据库并对数据进行很好的更改,使用 admin-credentials。当我也尝试 npm install firebase-functions 使用事件触发器 onCreate/onWrite/onUpdate/onDelete 时,他们没有得到任何更新?

据我了解,使用事件触发器的唯一方法是上传到云函数,因为您需要 Google 的基础架构才能使用这些函数,而您不能在本地机器上使用它们,您可以使用 @ 987654331@包。您可以使用本地模拟器(?),但它还没有准备好生产并且不适合该用例(?)。

因此,为了在我的 Firestore 数据库中侦听新事件,仅使用我的笔记本电脑(不是 Google Cloud Functions 平台或其他一些服务器托管选项),我必须使用来自 firebase-admin npm 的 .onSnapshot()

但是该模块无法缓存,您只能查询整个 firestore 数据库,下载每个文档。

这是正确的吗?或者有什么办法可以让firebase-functions 使用firebase-admin + 管理员凭据从我的笔记本电脑服务器上工作,就像我将文件上传到云平台一样。我不需要这部分数据在云端,所以我想从笔记本电脑的终端进行更改和调整 firestore 数据库。

【问题讨论】:

    标签: firebase google-cloud-platform google-cloud-firestore google-cloud-functions


    【解决方案1】:

    您需要平衡可扩展性和您想要实现的目标。一种方法使用Parse ServerDocker 与Express 一起使用的容器。这种方法的优点是它在解析服务器可以运行的位置方面具有灵活性。如果您需要更多处理能力,您可以在笔记本电脑上运行它或将其移至 Google Cloud。但值得注意的是,容器无法访问所有 Firebase 触发器类型。

    我不确定您使用的是哪个操作系统,但对于 Ubuntu,您可以像这样安装 Docker 并运行 Parse Server:

    # Update the apt package first 
    $ sudo apt-get update
    
    # install dependencies
    $ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common \ 
        git
    
    # Add Docker’s GPG key:
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    # add the Docker repository
    $  sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    
    # Update the apt package again
    $ sudo apt-get update
    
    # Install Docker
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    $ git clone https://github.com/parse-community/parse-server
    $ cd parse-server
    $ docker build --tag parse-server .
    $ docker run --name my-mongo -d mongo
    

    运行解析服务器:

    $ docker run --name my-parse-server -v config-vol:/parse-server/config \
    -p 1337:1337 --link my-mongo:mongo -d parse-server --appId APPLICATION_ID \
    --masterKey MASTER_KEY --databaseURI mongodb://mongo/test
    

    要链接 Firebase 和 Docker Parse 服务器,您需要一个 adapter。上面的容器是一个示例,但它应该足以让您开始在笔记本电脑上运行。

    【讨论】:

    • 感谢安德鲁的回复,值得一试
    猜你喜欢
    • 2019-11-10
    • 2018-04-29
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多