Skip to content

Firebase remote config - Can not get key list from default value dictionary #62

Closed
@takaaptech

Description

@takaaptech

I try to get key, value list from defaults dictionary, in editor mode it works. But on real device (android device). It print nothing from for each loop.
Example MonoBehaviour as bellow:

using System;
using System.Threading.Tasks;
using Firebase.RemoteConfig;
using OneSoftGame.Tools;
using System.Diagnostics;
using System.Collections;
using UnityEngine;

public class RMManager : MonoBehaviour
{

    Firebase.DependencyStatus dependencyStatus = Firebase.DependencyStatus.UnavailableOther;

    /// <summary>
    /// Awake is called when the script instance is being loaded.
    /// </summary>
    void Start()
    {
        dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
        if (dependencyStatus != Firebase.DependencyStatus.Available)
        {
            Firebase.FirebaseApp.FixDependenciesAsync().ContinueWith(task =>
            {
                dependencyStatus = Firebase.FirebaseApp.CheckDependencies();
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    print("RemoteConfig configured and ready!");
					InitFB();
                }
                else
                {
                    print(
                        "Could not resolve all Firebase dependencies: " + dependencyStatus);
                }
            });
        }
        else
        {
            print("RemoteConfig configured and ready!");
			InitFB();
        }
    }

    void InitFB()
    {
        print("Start InitFB");
		ListDefaultValues();
        //Test("key1");
        //Test("key2");
        SetDefaultValues("key1", "value1");
        //Test("key1");
        //Test("key2");
        ListDefaultValues();
        SetDefaultValues("key2", "value2");
        //Test("key1");
        //Test("key2");
        ListDefaultValues();

    }
    void Test(string key)
    {
           print("Start Test key:"+ key);
           var item = Firebase.RemoteConfig.FirebaseRemoteConfig.GetValue(key);
            DebugFirebaseConfigValue(item);
    }

    void SetDefaultValues(string key, object value)
    {
        print("Start SetDefaultValues for key:"+ key);
        System.Collections.Generic.Dictionary<string, object> defaults =
            new System.Collections.Generic.Dictionary<string, object>();
        defaults.Add(key, value);
        Firebase.RemoteConfig.FirebaseRemoteConfig.SetDefaults(defaults);
        ListDefaultValues();
    }

    private void ListDefaultValues()
    {
        print("Start ListDefaultValues GetKeysByPrefix ++++");
        var keys = Firebase.RemoteConfig.FirebaseRemoteConfig.GetKeysByPrefix("","");


        foreach (var key in keys)
        {
            print("ListDefaultValues:" + key);
            var item = Firebase.RemoteConfig.FirebaseRemoteConfig.GetValue(key);
            DebugFirebaseConfigValue(item);
        }
        print("Start ListDefaultValues GetKeys ++++");
        keys = Firebase.RemoteConfig.FirebaseRemoteConfig.GetKeys("");
        
        foreach (var key in keys)
        {
            print("ListDefaultValues:" + key);
            var item = Firebase.RemoteConfig.FirebaseRemoteConfig.GetValue(key);
            DebugFirebaseConfigValue(item);
        }

        print("Start ListDefaultValues .Keys ++++");
        keys = Firebase.RemoteConfig.FirebaseRemoteConfig.Keys;
        
        foreach (var key in keys)
        {
            print("ListDefaultValues:" + key);
            var item = Firebase.RemoteConfig.FirebaseRemoteConfig.GetValue(key);
            DebugFirebaseConfigValue(item);
        }


        print("End ListDefaultValues ++++");
    }

    public void DebugFirebaseConfigValue(ConfigValue item)
    {
        try
        {
            print("Debug ConfigValue Start -----------------");
            print("Source:" + item.Source);
            print("StringValue:" + item.StringValue);
            print("Debug ConfigValue End -----------------");
        }
        catch (Exception ex)
        {
            print("DebugFirebaseConfigValue Exception:" + ex.Message);
        }

    }
}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions