【问题标题】:Multiple public Firebase Database Instances in AndroidAndroid 中的多个公共 Firebase 数据库实例
【发布时间】:2018-06-17 10:22:28
【问题描述】:

我正在处理一项任务。我必须使用提供商“hacker-news”提供的数据库。我也必须使用 Firebase 身份验证。我在自己的帐户中设置了一个新项目。从 Hacker-news 数据库中检索数据使用以下行。我能够使用 firebase child() API 获取可公开访问的数据是

database = FirebaseDatabase.getInstance("https://hacker-news.firebaseio.com/");

但是当我实现 Firebase 身份验证并且一旦用户登录它就会出错

提供的身份验证凭据无效。这通常表明您的 FirebaseApp 实例未正确初始化。确保您的 google-services.json 文件具有正确的 firebase_url 和 api_key

我在互联网上花了很多时间,找到了一个在单个项目中实现多个数据库的链接 - Working with multiple Firebase projects in an Android app by Google

仅当您是这些数据库的所有者时才有效。无论如何我可以使用 SDK 而不是 REST-API 访问 Hacker-news 数据库吗?

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-authentication


    【解决方案1】:
            FirebaseOptions options = new FirebaseOptions.Builder()
                            .setDatabaseUrl(getResources().getString(R.string.dbURL))
                            .setApiKey(getResources().getString(R.string.api))
                            .setApplicationId(getResources().getString(R.string.appID))
                            .setProjectId(getResources().getString(R.string.projectId))
                            .setStorageBucket(getResources().getString(R.string.storageBucket)).build();
    //set all variable above as your need
    
            boolean hasBeenInitialized=false;
                    List<FirebaseApp> fireBaseApps = FirebaseApp.getApps(getApplicationContext());
                    for(FirebaseApp app : fireBaseApps){
                        if(app.getName().equals("any_name")){
                            hasBeenInitialized=true;
    
                        }
                    }
    
                    if (!hasBeenInitialized) {
                        smaTeacher = FirebaseApp.initializeApp(this, options, "any_name");
    
                    }
        database=FirebaseDatabase.getInstance(FirebaseApp.getInstance("any_name"));
    

    【讨论】:

    • 我遇到了这个解决方案,但我只有数据库 URl,我没有 Hacker-News 的其他参数(projectId 等)
    • 如果您在 FirebaseOptions 构建器中简单地省略其他值并仅使用数据库 url 会怎样?
    • 也试过了。它向我抛出了一个需要 projectId 的错误。
    猜你喜欢
    • 2018-05-16
    • 2012-04-12
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多