我正在使用同时使用Firebase Messaging和Room数据库的应用程序.
这是db的初始化方式
public static AppDatabase getInstance(final Context appContext) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(appContext, AppDatabase.class, "dbname.db")
// prepopulate the database after onCreate was called
.addCallback(rdc)
.build();
}
return INSTANCE;
}
Run Code Online (Sandbox Code Playgroud)
在MainActivity第一次调用的某个地方,AppDatabase并且数据库被实例化,所有工作正常,花花公子!
现在问题开始时用户kill应用程序...
为了简单起见,想想这个应用程序就像Whatsapp ...应用程序被杀了但是service (MyFirebaseMessagingService)正在侦听消息仍在运行(应该如此).
当一条新消息到达并MyFirebaseMessagingService尝试将其保存到数据库时,将调用AppDatabase.getInstance()崩溃,因为context创建数据库的初始引用已不再存在,因为应用程序已被终止.
在搜索如何解决这个问题时,我了解到每个服务this实际上都来源于此,context所以我立即尝试使用MyFirebaseMessagingService上下文来初始化数据库,但是,MyFirebaseMessagingService::onCreate在真正有权访问服务上下文的情况下,在第一条消息到达之前不会被触发
我能想到的唯一解决方案是创建一个全新的服务,bindService()它是MainActivity,并使用新的服务上下文来创建AppDatabase实例......但它似乎完全矫枉过正.
所以我的问题是,MyFirebaseMessagingService即使App被杀,如何以仍然可以使用它的方式初始化Room数据库?
我正在创建一个可以发送通知的 Android 应用程序。用户可以选择使用电话号码或电子邮件帐户。
我只需要验证用户输入的电子邮件,我不想创建Firebase 帐户
Firebase 有一个FirebaseUser#sendEmailVerification()但需要创建一个帐户。
换句话说,我只希望电子邮件验证与电话验证相同,其中 Firebase 只会向您发送代码或验证链接。
有没有办法在不创建帐户的情况下利用 Firebase 电子邮件验证?
我们在生产环境中使用 SQL Server 2008 R2,并且正在考虑升级到 SQL Server 2019。
因此,我只是在我的计算机上安装了 SQL Server 2019 Developer Edition 来测试它,从生产服务器获取新的备份并在我的计算机上进行还原。
我的计算机上还安装了 SQL Server 2008 R2,因此我期待进行一些并行性能比较。
SQL Server 2008 R2 和 SQL Server 2019 都安装在同一 nvme 驱动器 (C:) 上,并且两个实例也位于同一驱动器上,但是 SQL Server 2019 tempdb 位于另一个驱动器 (D:) 上
在 SQL Server 2008 R2 上运行特定的存储过程花费了1 分 43 秒,在 SQL Server 2019 上运行了3 分 41秒……我运行该存储过程大约十几次,结果大致相同(加/减几秒)
在存储过程执行过程中,SQL Server 2008 R2和SQL Server 2019的磁盘IO读写都勉强达到6MB/s,CPU利用率都在10%左右
我重新启动计算机并首先在 2019 实例上再次运行存储过程,得到相同的结果(我担心 SQL Server 2008 R2 不知何故抢占了所有可用内存,但事实并非如此)
所以我尝试了所有这些,在中间再次运行存储过程以检查是否有任何改进:
请不要关闭这个问题,它不是重复的,并且解释如何在 MySQL 上使用引号的建议链接对我没有任何作用,因为这个问题是在 WP 脚本内。谢谢
\n\nI\xe2\x80\x99m 尝试在干净的Windows 2019 Server 虚拟机上安装 WP 5.4.1。
\n\n我没有使用\xe2\x80\x99t Microsoft Web Platform Installer,因为它下载了旧版本的WP / MySQL和PHP,所以我\xe2\x80\x99m尝试从头开始安装。
以下是我\xe2\x80\x99采取的步骤:
\n\nPHP 7.4.5非线程安全版本\n并安装了它php.ini-production为php.ini将 php.ini 编辑为:
\n\n在 IIS 中,我创建了 *.php 映射并添加了 default.php 和 index.php
创建虚拟phpinfo.php文件并在 IIS 上进行测试,一切正常并且 phpinfo() 显示数据