问题是返回的数据为NULL。我知道当客户机数据过时时,这是可能的,但是函数没有错误地退出,并且提交为false。
当我使用完全相同的引用来检索数据快照时,将返回正确的值。
var ref = admin.database(devDB).ref('/path/to/countValue');
ref.transaction(function(count) {
if(count != null) {
var newCount = count + 1;
return newCount;
}
}, function(error, committed, ss) {
if(error) {
console.log('error: ', error);
}
console.log('committed: ', committed);
});
可以预期,事务处理程序的第一次调用将为您提供一个null值。文件中说明了这一点:
多次调用事务函数
您的事务处理程序被多次调用,并且必须能够处理空数据。即使数据库中存在现有数据,在运行事务函数时也可能不会对其进行本地缓存。
upvotesRef.transaction(function (current_value) {
return (current_value || 0) + 1;
});
你能告诉我如何只对某些代码块运行事务吗?我有@Transactional的服务函数,并从它们调用存储库函数,在那里执行查询。但当查询失败时,由于事务必须结束,服务功能也随之失效。那么,当存储库函数失败时,如何返回null值呢?我需要在失败时捕获空值,并继续一些逻辑。我的代码: 我尝试了@davidxxx的答案,得到了这个错误:
在我的应用程序中,我试图从Firebase数据库中获取用户信息,但它总是返回NULL。下面是我从数据库中读取当前用户信息的代码 我的问题是,如果email和name的字段不是空的,为什么“observesingleevent”方法返回null?我怎么才能修好这个?
我试图弄清楚如何从angular 6/typescript应用程序向firebase数据库编写事务。 下面是我使用的一个工作示例作为指导: 我确定的关键部分如下: 1)创建一个数组来保存事务:const transactions=[]; 2)开始事务:返回db.runtransactions(function(transactions){… 3)使用事务:transaction.set(newPh
我正在尝试将自定义对象上载到Firebase Firestore,但Firestore对象应包含下载图像url。我必须这样做的想法是先上传图像,等待图像完成,获取下载url的引用,更新我的自定义类,然后将其上传到Firestore。然后,当最后一次上传(上传到Firestore)完成时,我想通知我的视图。我想通过返回一个任务来实现这一点。以下是我上传图片的方法: 我不确定如何返回Firstore上
我花了几个小时来查找为什么我的代码没有从这个结构X:/中检索到文件“firstname”的原因 当我在debug中时,我可以看到Firebase检索与“firstname”相同级别的所有其他字段,但最后一个字段始终为null,即使它中有有效数据。 这是我创建FireStoreRecyclerOptions的行: 这是我的QueryFireStore: 而X类是一个POJO,包含以下数据结构:
我将数据保存到会话中,但是我尝试将其读回,结果为空。Spring MVC是我的后端,Angular 4是前端。 爪哇: 角: 你知道我错过了什么吗?也许是CORS的事?