#firestore #firebase #bevy #后端 #数据库 #client-id #client-key

bevy-firebase-firestore

Bevy游戏引擎的Firebase Firestore集成

1 个不稳定版本

0.1.0 2023年9月6日

#1448 in 游戏开发

MIT/Apache

8.5MB
114K SLoC

Bazel 110K SLoC // 0.1% comments Rust 3.5K SLoC // 0.0% comments Shell 182 SLoC // 0.3% comments Go 149 SLoC // 0.2% comments Forge Config 2 SLoC // 0.8% comments

bevy-firebase-firestore

Bevy的Google Firebase Firestore集成。

目前仅实现了Google + GitHub OAuth2和有限的Firestore操作。

警告

这还没有经过实战测试,如果你不小心,你将信任这个插件,使用可以产生一些严重费用的API密钥。请检查文档以了解如何使用模拟器设置Firestore。

你的密钥将嵌入到分发的二进制文件中,或者作为单独的文件提供,但无论如何它们都需要是公开的。确保你的GCP为此做好准备。

这个crate非常大。我非常确信这是由于依赖于googleapis,我将在下一个版本中通过最终确定API代码来缩小它。

安装

cargoadd bevy-firebase-firestore

依赖

需要 bevy-tokio-tasks 以使tonic crate正常工作。移除依赖是一个待办事项,我只是还不够熟悉Rust。

版本兼容性

目标Bevy 0.11.0

用法

设置

创建一个Firebase项目,并记下你的项目ID和客户端ID及密钥。

将客户端密钥放在项目根目录的keys.ron中,并将keys.ron添加到你的.gitignore

keys.ron应格式化为以下形式

{
    Github: Some(("YOUR-GITHUB-CLIENT-ID","YOUR-GITHUB-CLIENT-SECRET")),
    Google: Some(("YOUR-GOOGLE-CLIENT-ID-STRING.apps.googleusercontent.com","YOUR-GOOGLE-CLIENT-SECRET"))
}

这个结构可能会在下一个版本中改变,所以我建议不要围绕它编写任何工具。

App::new()
    // PLUGINS
    .add_plugins(DefaultPlugins)
    // Dependency for firestore RPC to work
    .add_plugins(bevy_tokio_tasks::TokioTasksPlugin::default())
    .add_plugins(bevy_firebase_auth::AuthPlugin::default())
    .add_plugins(bevy_firebase_firestore::FirestorePlugin::default());

密钥 + 密钥

Google喜欢将所有必要的密钥放在各个地方,设置一个项目需要几个步骤。以下是一个简单的说明,以获取使用插件所需的一切。

创建Firebase项目

访问此链接并创建一个项目。

项目ID、API密钥

创建项目后,转到项目设置(在Firebase项目控制台的设置齿轮上)并记下项目ID和Web API密钥。

客户端ID、客户端密钥

我们需要创建一个标识符以验证应用程序与Google后端。前往 这里,在左上角的下拉菜单中选择您的项目,并创建一个新的OAuth2凭证。给它起一个易于识别的名字,并在生成后记下客户端ID和客户端密钥。

注意:我仅测试了桌面客户端。

开发中

克隆仓库,运行 git submodule initgit submodule update

许可证

Apache 2.0或MIT,由用户自行决定。

依赖

~32–47MB
~898K SLoC