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

Android:Firebase实时数据库有连接池吗?

何海
2023-03-14

我正在使用Firebase的实时数据库。下面是我如何使用它。

 private void saveInDatabase(String email)
    {
        // Write a message to the database
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("user");
        String key = myRef.push().getKey();

        User user = new User();
        user.setCountry("United States");
        user.setEmail(email);
        user.setFirstName("John");
        user.setLastName("Doh");
        user.setGender("Male");

        myRef.child(key).setValue(user);
    }

现在,事情是这样的。在Firebase控制台中,我们可以看到“使用情况”和“同时实时连接数”。我注意到,对于我来说,这个“同步实时连接数”总是1,无论我是否在2部手机中安装了应用程序,是否关闭了与数据库的连接。goOffline(),或者我是否关闭了电话。

那么这到底是如何工作的呢?有连接池吗?根据我看到的一些线程,1个连接=一个使用连接的设备,在这种情况下,如果我有1,000,000个用户,那么我就有1,000,000个连接?我不这么认为!!

共有1个答案

屈翰飞
2023-03-14

客户端SDK为与服务器端的所有通信维护一个websocket。如果应用程序不再使用,此连接可能会关闭。如果应用程序进程未运行,或者浏览器选项卡已关闭,则它肯定会关闭。

活动连接图没有显示活动连接数的完美实时测量。您应该仅将其用作衡量数据库随时间推移的活动量的通用标准。

 类似资料:
  • null 提前谢了。

  • 我在应用程序中使用连接池(snaq.db.ConnectionPool)。连接池的初始化方式如下: 使用的DB池值是: 我的应用程序在某处泄漏连接(连接未被释放),因此连接池已耗尽。我现在已经修好了密码。 空闲超时后连接不应该关闭吗?如果这不是正确的假设,有没有办法关闭打开的空闲连接(仅通过java代码)?

  • 我正在为员工管理系统创建一个web应用程序,使用ApacheTomcat作为HTTP服务器,Oracle作为数据库,applet用于客户端编程,servlet用于服务器端编程。我还想使用DBCP来管理与数据库的连接。 我希望执行查询的servlet使用客户端为连接输入的用户名和密码。但是到目前为止,我看到在中配置资源时必须设置连接池的用户名和密码。 有没有什么方法可以实现这一点并且仍然使用DBCP

  • 由于基于HTTP协议的Web程序是无状态的,因此,在应用程序中使用JDBC时,每次处理客户端请求时都会重新建立数据库连接。如果客户端的请求非常频繁,服务端在处理数据库时将会消耗非常多的资源。因此,在Tomcat中提供了数据库连接池技术。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个数据库连接。在使用完一个数据库连接后,将其归还数据库连接池

  • 问题设置基于Web服务(Spring/Java、Tomcat7和MySql),其中每个用户都有自己的数据库,因此每个请求都需要自己的连接。由于所有数据库都是在运行时动态创建的,因此在启动之前静态配置它们不是一个选项。 为了优化数据库连接使用,数据库连接池的实现将是非常好的,对吗? 使用Java/Spring:如何为动态数据库创建连接池?我有点惊讶于这里缺少干净的选择 问题:Tomcat的连接池(以

  • yaf项目快速开发(兼容php7): yaf project rapid development, integration of the db action class support chain operation, support separate read and write, pdo, mysqli, mongo, upload operation, adding redis operat