是否有可能为我的Unity应用程序配置多个Firebase项目,而无需深入Android或iOS代码?我尝试简单地切换google-services.json文件,但这未能将我的Unity应用程序指向正确的Firebase应用程序。理想情况下,我希望能够做这样的事情:
void Awake()
{
if (environment == Environment.Development)
{
SetDevelopmentEnvironment();
}
FirebaseApp.CheckDependencies();
FirebaseApp.FixDependenciesAsync();
auth = FirebaseAuth.DefaultInstance;
}
public void SetDevelopmentEnvironment()
{
AppOptions firebaseDevelopmentAppOptions = new AppOptions();
firebaseDevelopmentAppOptions.ProjectId = "test";
firebaseDevelopmentAppOptions.StorageBucket = "test.appspot.com";
firebaseDevelopmentAppOptions.AppId = "1:12345:android: xyz";
firebaseDevelopmentAppOptions.ApiKey = "123Key";
firebaseDevelopmentAppOptions.MessageSenderId = "123SenderID";
System.Uri dbURL = new System.Uri("https://test.firebaseio.com");
firebaseDevelopmentAppOptions.DatabaseUrl = dbURL;
FirebaseApp.Create(firebaseDevelopmentAppOptions);
}
或者更好的方法是从Resources文件夹传递适当的google-services.json。
现在做您在问题中首先提出的问题,如果您可以在运行时以某种方式完成。你必须非常小心,Unity中的Firebase是一个懒惰初始化的单例。也就是说,访问属性FirebaseApp.DefaultInstance
或调用依赖于它的任何函数将导致创建Firebase单例。您可以尝试使用firebaseapp.create(AppInfo)
手动创建一个Firebase实例,但在游戏设计中必须非常结构化,以确保在隐式构造firebaseapp
之前调用该实例(create应该设置全局默认实例,但checkandFixDependenciesAsync
是一个异步调用,可能需要多个帧才能完成。这可能会出现一个棘手的bug表面)。正如@twinsens指出的那样,您可以传入从json文件生成的appop,但是在assets/
目录中有多个名为google-services.json
的文件并不是一个定义良好的场景。您需要重命名非默认配置(可能还需要将扩展名更改为.txt
,以便将它们作为TextAsset
)检索。
类似于这样:
async void Awake()
{
var dependencyStatus = await FirebaseApp.CheckAndFixDependenciesAsync();
if (dependencyStatus != DependencyStatus.Available) {
// error handling here
return;
}
FirebaseApp app;
if (environment == Environment.Development)
{
// I'm being extra cautious. `DefaultInstance` should have the one you create.
app = SetDevelopmentEnvironment();
}
else {
app = FirebaseApp.DefaultInstance;
}
// I'm being extra explicit just in case
// for large projects, I'd prefer some sort of DI over the singletons anyway
auth = FirebaseAuth.GetAuth(app);
}
public FirebaseApp SetDevelopmentEnvironment()
{
AppOptions firebaseDevelopmentAppOptions = new AppOptions();
firebaseDevelopmentAppOptions.ProjectId = "test";
firebaseDevelopmentAppOptions.StorageBucket = "test.appspot.com";
firebaseDevelopmentAppOptions.AppId = "1:12345:android: xyz";
firebaseDevelopmentAppOptions.ApiKey = "123Key";
firebaseDevelopmentAppOptions.MessageSenderId = "123SenderID";
System.Uri dbURL = new System.Uri("https://test.firebaseio.com");
firebaseDevelopmentAppOptions.DatabaseUrl = dbURL;
return FirebaseApp.Create(firebaseDevelopmentAppOptions);
}
在android上有没有可能以编程方式初始化firebase-crashlytics SDK,这样它就不会使用google-services.json中的数据?
一个应用程序可以连接多个Firebase帐户吗? 在单个android应用程序中使用多个firebase帐户进行google analytics
问题内容: 我在pytesseract遇到问题。我需要将Tesseract配置为可以接受单个数字,同时也只能接受数字,因为数字0经常与’O’混淆。 像这样: 问题答案: 支持下面。如果要具有单个字符识别,请设置。并且如果您的文本仅包含数字,则可以设置。 这是带有多个参数的示例用法。 希望这可以帮助。
问题内容: 用于登录的配置文件可以在类路径中找到,因此是Eclipse项目特定的,这不是我想要的。我正在使用多个Java实用程序,它们全部都驻留在一个项目中(共享类路径),并且其中一些需要使用特定的配置。 我尝试了变量替换和Joram配置器,但没有任何效果。这很可能是我的错,我有一天要解决,但是现在我需要一个简单的解决方案。 问题答案: 选项1:使用logback.configurationFil
MoreApp.php 实现多项目部署,需要在入口文件中注释掉定义APP_NAME语句,这样MoreApp.php文件才会生效。 index.php文件code: //define('APP_NAME', 'App1');
我有2个与firestore的firebase项目,让我们称他们为A和B,他们都有自己的web客户端。现在A web客户机需要读取B firestore数据库,所以我需要允许A客户机在B的某些集合下对firestore执行某些操作。是否有一种方法可以在使用firestore规则的同时使用B中A的身份验证数据来允许此类操作?。是否有一种方法可以将auth令牌从a链接到B中允许它们?。 任何机制都行得