google-services.json:open failed:ENOENT(没有这样的文件或目录)

时间:2016-10-22 16:07:39

标签: java android json firebase firebase-realtime-database

亲爱的,我正在尝试初始化与Google Firebase的连接

 try{
            Firebase.setAndroidContext(this);
            start = new Firebase("https://mymarket-c2448.firebaseio.com/name");
            FirebaseOptions options = new FirebaseOptions.Builder()
        .setDatabaseUrl("https://mymarket-c2448.firebaseio.com")
        .setServiceAccount(new FileInputStream("google-services.json"))
        .build();
       FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("name");

        myRef.push().setValue("This is first Test");
        myRef.setValue("This is Test");

        myRef.addValueEventListener(new ValueEventListener() {

            @Override
            public void onDataChange(DataSnapshot snapshot) {
                // TODO Auto-generated method stub
                boolean connected = snapshot.getValue(Boolean.class);
                if (connected) {
                    Toast.makeText(getApplicationContext(), "connected", Toast.LENGTH_LONG).show();

                    System.out.println("connected");
                } else {
                    Toast.makeText(getApplicationContext(), "not_connected", Toast.LENGTH_LONG).show();

                    System.out.println("not connected");
                }


            }

            @Override
            public void onCancelled(DatabaseError arg0) {
                // TODO Auto-generated method stub

            }
        });
        }
        catch (Exception e){
            //Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            System.out.println("Error1"+e.getMessage());
        }

但是在跑步时我得到了这个错误

10-22 19:05:09.598: I/System.out(5899): Error1google-services.json: open failed: ENOENT (No such file or directory)
我尝试使用

this.getassets()。open(“google-services.json”)而不是FileInputStreem但是相同

由于

1 个答案:

答案 0 :(得分:1)

您不应该以这种方式使用google-services.json在Android应用中使用Firebase数据库。该文件仅在您按照these instructions设置应用后的构建时使用。在应用程序本身内永远不会引用。

我还注意到你正在创建一个FirebaseOptions实例,但是你没有做任何事情。实际上,您通常不必在Android应用中创建FirebaseOptions对象。通常情况下,如果您尝试从其他服务器访问Firebase,则需要将FirebaseOptions与服务帐户一起使用。您可以使用these instructions执行此操作。