当前位置: 首页 > 知识库问答 >
问题:

使用java的Firebase admin sdk无法连接

訾高明
2023-03-14

我试图使用firebase数据库创建一个java桌面RMI数据管理系统。我的第一步是使用管理SDK确认firebase的连接性。我完全按照指南中的步骤进行,没有得到任何进展。程序执行,但在我的firebase控制台中没有数据修改。

public class Main{

    public static class User2 {

        public String date_of_birth;
        public String full_name;
        public String nickname;

        public User2(String dateOfBirth, String fullName) {
            this.date_of_birth = dateOfBirth;
            this.full_name = fullName;
        }

        public User2(String dateOfBirth, String fullName, String nickname) {
            this.date_of_birth = dateOfBirth;
            this.full_name = fullName;
            this.nickname = nickname;
        }
    }

    public static void main(String[] args) {

        FileInputStream serviceAccount = null;
        try {

            serviceAccount = new FileInputStream("rathnapuralabs-firebase-adminsdk-okzic-f6313557b4.json");
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        }

        FirebaseOptions options = null;
        try {

            options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                    .setDatabaseUrl("https://rathnapuralabs.firebaseio.com")
                    .build();
        } catch (IOException e) {

            e.printStackTrace();
        }
        FirebaseApp.initializeApp(options);

        DatabaseReference ref = FirebaseDatabase.getInstance()
                .getReference();

        DatabaseReference usersRef = ref.child("users2");

        Map<String, User2> users = new HashMap<>();
        users.put("alanisawesome", new User2("June 23, 1912", "Alan Turing"));
        users.put("gracehop", new User2("December 9, 1906", "Grace Hopper"));

        usersRef.setValueAsync(users);

        ref.addListenerForSingleValueEvent(new ValueEventListener() {
           @Override
           public void onDataChange(DataSnapshot dataSnapshot) {
               Object document = dataSnapshot.getValue();
               System.out.println(document);
           }

           @Override
           public void onCancelled(DatabaseError error) {
           }
    });
    }

https://github.com/bandarawaththa/testing-firebase-with-realtime-db.git

共有1个答案

莫泓
2023-03-14

下面的代码适用于我:

try {
            FirebaseOptions options = new FirebaseOptions.Builder()
                    .setCredentials(GoogleCredentials
                                    .fromStream(new ClassPathResource("/firebase-authentication.json").getInputStream()))
                    .build();

            if (FirebaseApp.getApps().isEmpty()) {
                FirebaseApp.initializeApp(options);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

“/firebase-authentication.json”位于resources文件夹中。

 类似资料:
  • 我是Harold,我是Openshift的新手,我使用下面的代码通过这里的示例用java连接到MySQLhttps://www.openshift.com/forums/openshift/no-suitable-driver-found-error, 不幸的是,我没能成功。 起初,它说“找不到合适的驱动程序”,所以我将mysql连接器添加到WEB-INF/lib文件夹并添加类。forName(“

  • java.sql.sqlexception:网络错误IOException:连接被拒绝:连接在net.sourceforge.jtds.jdbc.jtdsConnection.(jtdsconnection.java:434)在net.sourceforge.jtds.jdbc.driver.connect(driver.java:183)在net.sql.drivermanager.getCon

  • 我正在尝试从用java编写的Lambda连接到AWS Oracle RDS。用于进行连接的连接钱包的二进制文件。 当我从SQLDeveloper使用它时,它工作正常。但是当我使用此 java 代码时,不会发生同样的情况。 在SQLDeveloper中,我使用的自定义jdbc url是:DBC:Oracle:thin:@(DESCRIPTION =(ADDRESS _ LIST =(ADDRESS

  • null ...9200/_cluster/nodes ...9200/_cluster/health?pretty=true Java代码: Java版本: 问题已按以下方式解决。确保您的客户端和服务器版本是同步的!

  • 0个 我正在尝试从Java连接到邮件服务器。我已经能够使用相同的代码成功地从Java连接到许多邮件服务器,包括Gmail、Rackspace、GoDaddy和其他,但是无论我尝试什么设置,这个都不起作用。 此操作失败,javax.mail.MessaginException:无法将套接字转换为TLS;嵌套异常为:javax.net.ssl.SSLException:无法识别的ssl消息,纯文本连接