Unity3D-Firebase的Database崩溃报错“createRepo called for Repo that already exists”

最近将Firebase的Database更新到6.x版本之后,在iOS上出现了大量的崩溃:

createRepo called for Repo that already exists

之前都好好的,不知道这次怎么就报这个错误,在网上找了半天,最后发现是因为在调用数据库引用时,不在主线程

FirebaseDatabase.DefaultInstance.GetReference("xxxx/xxxx");

所以,我就试了下将需要执行这句的代码,放入多一个队列中,然后从Update里面去执行,没想到就不在崩溃了

具体做法是这样:

private Queue admobQueue; //定义一个队列变量


void Start(){
    admobQueue = new Queue();
}

void Update(){
    if (admobQueue != null){
        while(admobQueue.Count > 0){
            admobQueue.Dequeue().Invoke();
        }
    }
}

//在需要调用引用的时候,将接下来需要操作的代码加入到队列中区
admobQueue.Enqueue(delegate{
    userRef = FirebaseDatabase.DefaultInstance.GetReference("xxxx/xxxx");
});

 

你可能感兴趣的:(Unity3D,Firebase,Database,Crash,IOS,Unity3D,Firebase,Unity摸索记录)