Google Firebase实时数据库updateChildren()方法不起作用?

时间:2018-04-06 11:33:23

标签: java firebase firebase-realtime-database firebase-admin

在我的应用程序中,我正在使用带有admin-sdk for Java的google firebase实时数据库。当我从我的机器上运行一个示例程序时,它可以很好地工作并将给定的数据更新到firebase db中。但是,当我尝试从另一个公共服务器运行相同的程序时,它无法正常工作。它根本不会抛出任何异常。 updateChildren()被执行,然后什么都没有。我也试过onCompletionListener。那里什么都没有。可能是什么问题?

FBManager.java

import com.nexge.firebase.Firebase;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import java.util.HashMap;

class FBManager {
    //FIREBASE
    public static Firebase fireBase;
    public static DatabaseReference dbRef = null;
    public static String filePath="key/siva-6d0aa-firebase-adminsdk-1bo0t-e98c5af5d5.json";
    public static String databaseUrl="https://siva-6d0aa.firebaseio.com";
    public static String projectName="ABES";
    public static String databaseChildPath;

    public static void main(String[] args) {
        try {
            databaseChildPath="calls/";
            System.out.println("Inside iniDB !");
            fireBase = new Firebase(filePath, databaseUrl, projectName, databaseChildPath);
            System.out.println("FireBase db created!");
            dbRef = fireBase.getDatabaseReference();
            System.out.println("Got reference!");
            T t = new T();
            new Thread(t).start();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}

T.java

class T implements Runnable {
    public void run() {
        try {
            String path = "191963944/5e0e44e2-3442-4acd-977a-fea7232c0f0a";
            HashMap hm1 = new HashMap();
            hm1.put("caller_Recv_Media_IpPort","xxx.xxx.xx.xxx:9811");
            HashMap hm2 = new HashMap();
            hm2.put("yServer_src_Media_IpPort","xxx.xx.xx.xx:10000");
            FBManager.dbRef.child(path).updateChildren(hm1);
            FBManager.dbRef.child(path).updateChildren(hm2);
            Thread.sleep(10000);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这似乎与服务器网络问题有关。在另一台服务器上正常工作结束这个问题。感谢