从今天早上开始,我们的Firebase应用程序在将数据写入 Realtime Database实例时出现问题.即使是最简单的任务,例如向对象添加一个键值对也会触发
Error: TRIGGER_PAYLOAD_TOO_LARGE: This request would cause a function payload exceeding the maximum size allowed.
特别奇怪,因为我们的代码或数据库中的任何内容都没有变化超过24小时.
即使是简单的事情
Database.ref('environments/' + envkey).child('orders/' + orderkey).ref.set({a:1})
Run Code Online (Sandbox Code Playgroud)
触发错误.
显然,有效载荷的大小不是问题,但是可能导致这种情况的原因是什么?
数据库结构,按要求
environments
+-env1
+-env2
--+orders
---+223344
-----customer: "Peters"
-----country: "NL"
-----+items
------item1
-------code: "a"
-------value: "b"
------item2
-------code: "x"
-------value: "2"
如何在FloatingActionButton中着色图标资源图像?我试过favoriteFab.setColorFilter(R.color.yellow, PorterDuff.Mode.OVERLAY);但没有成功.
我想为我的django webapp使用firebase身份验证.为了达到这个目的,我想我需要编写一个自定义的auth后端 - 是吗?我没有看到任何已经执行此操作的库 - django-allauth看起来非常接近,但我对firebase提供的电话号码验证感兴趣.
我也对User模型和request.user或user.is_authenticated等函数会发生什么感到困惑.现在我使用身份验证和登录功能 - django如何知道用户是通过firebase登录的?我还会为每个用户创建一个用户模型吗?
谢谢
我尝试运行时遇到此错误
RACK_ENV=test be rails test test/system/service_provider_map_test.rb —seed 48088
Java HotSpot(TM) 64-Bit Server VM warning: Cannot open file logs/gc.log due to No such file or directory
Run Code Online (Sandbox Code Playgroud)
然后测试结束时出现此错误
等待群集状态时的超时[绿色]和[1]节点/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/ elasticsearch/extensions/test/cluster.rb:551:
sleep': execution expired (Timeout::Error) from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/elasticsearch/extensions/test/cluster.rb:551:in来自/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-的__wait_for_status 中的块(2个级别) extensions-0.0.26/lib/elasticsearch/extensions/test/cluster.rb:542:loop' from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/elasticsearch/extensions/test/cluster.rb:542:in来自/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/2.4.0/timeout的__wait_for_status 中的块. rb:108:timeout' from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/elasticsearch/extensions/test/cluster.rb:541:in__wait_for_status'来自/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/elasticsearch/extensions/test/ cluster.rb:364:inwait_for_green' from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/elasticsearch/extensions/test/cluster.rb:280:instart'from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/elasticsearch-extensions-0.0.26/lib/elasticsearch/extensions/ test/cluster.rb:52:在start' from /Users/patrickward/Desktop/esh/SDR/test/support/elasticsearch_helpers.rb:38:instart_elasticsearch'中来自/Users/patrickward/Desktop/esh/SDR/test/application_system_test_case.rb:12:in<class:ApplicationSystemTestCase>' from /Users/patrickward/Desktop/esh/SDR/test/application_system_test_case.rb:6:in'来自/ Users/patrickward/Desktop/esh/SDR/test/system/service_provider_map_test.rb:2:inrequire' from /Users/patrickward/Desktop/esh/SDR/test/system/service_provider_map_test.rb:2:in"from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.1.2/lib/rails/test_unit/test_requirer .rb:14:require' from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.1.2/lib/rails/test_unit/test_requirer.rb:14:in来自/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.1.2/lib/rails/test_unit/test_requirer的require_files 中的 块.rb:13:在each' from /Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.1.2/lib/rails/test_unit/test_requirer.rb:13:in/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.1.2/lib/rails/test_unit/minitest_plugin.rb的require_files'中:96:在plugin_rails_init' …
我试图报告一个VIEW_ITEM_LIST事件,里面有一些项目。除项目外,所有内容都在调试视图中正确报告。我没有使用任何自定义事件。似乎在 Android 和 iOS 中都会发生同样的问题。
这是我的代码。
override fun trackListViewEvent() {
val eventBundle = Bundle().apply {
val itemBundle1 = Bundle().apply {
putString(Param.ITEM_NAME, "name1")
putString(Param.ITEM_CATEGORY, "Category")
putString(Param.PRICE, "49.95")
putString(Param.CURRENCY, "EUR")
}
val itemBundle2 = Bundle().apply {
putString(Param.ITEM_NAME, "name2")
putString(Param.ITEM_CATEGORY, "Category")
putString(Param.PRICE, "89.95")
putString(Param.CURRENCY, "EUR")
}
putString(Param.ITEM_LIST_ID, "1234567890")
putString(Param.ITEM_LIST_NAME, "WhateverListName")
putString(Param.PRICE, "125.60")
putString(Param.CURRENCY, "EUR")
putParcelableArray(Param.ITEMS, arrayOf(itemBundle1, itemBundle2))
}
tracking.logEvent(Event.VIEW_ITEM_LIST, eventBundle)
}
Run Code Online (Sandbox Code Playgroud)
在 Logcat 我得到: W/FA-SVC: Param value can't be null: items
另一个问题是,ITEMS 似乎只接受一些参数。添加自定义参数时,我得到E/FA: Item cannot contain custom parameters …
我试图了解Android上Firebase的离线功能到底有多远.
据我所知,应该可以使数据库"持久" FirebaseDatabase.getInstance().setPersistenceEnabled(true);
文件内容如下:
Firebase实时数据库存储从查询返回的数据,以便在脱机时使用.对于在脱机时构建的查询,Firebase实时数据库将继续为以前加载的数据工作.如果未加载请求的数据,Firebase实时数据库将从本地缓存加载数据.当我们重新上线时,我们的数据将加载并反映查询.
当离线状态被强迫时,这也是真的goOffline吗?
在这个问题中,用户得到了firebase支持的答案:
虽然您可以使用goOffline()强制客户端长时间离线,但性能会随着时间的推移而恶化.Firebase客户端将对中间状态更改进行排队,而不是像服务器那样更新存储状态.
这是否意味着"本地数据库"实际上没有像因连接丢失而离线时更新?
因为大多数时候任何查询或值事件监听器都没有返回,所以onDataChange永远不会被调用为onCanceled(我已经检查过!)
如果只有连接丢失,它实际上就像宣传的一样,虽然有时会有一分钟的延迟,这本身就是一个问题.
goOffline()如果这只是完全停止与数据库的交互,那么甚至提供该方法的意图是什么?
在我的实现中,应用程序启动脱机,具有匿名身份验证.所以在开始的时候,"本地数据库"将是完全空的.但是,值事件至少应该使用空数据快照触发onDataChanged吗?
我尝试保持在线状态,直到收到匿名UID并在firebase数据库中添加一个空条目,然后查询/缓存.之后,如果我打电话goOffline,就不能再添加条目,也不会再回答任何查询.
与上面提到的问题类似,我的计划是为用户提供保持离线的选项,当然还有在本地缓存中建立存储的写事件的缺点(但这不应该是一个大问题.没有那么多数据)
那么即使可能,我怎样才能完成这项工作呢?
我唯一能看到的是在开始时为实际的离线功能提供一些不同的数据库解决方案,当用户选择上线时,必须将其转换并转移到firebase.
我在 firebase 中有我的只读数据,大约 50KB。我需要应用程序启动时的完整数据。为此,我在onCreate方法中编写了以下代码
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
Log.i("FIREBASE", "Before Firebase Call");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i("FIREBASE", "Call Completed");
// do my work i.e build my UI
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(context, "Please Check your Internet connection", Toast.LENGTH_LONG);
}
});
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,Firebase 获取数据的时间超过 4 秒。在上面的代码中,两个日志语句之间有 4 秒的间隙,即“Before Firebase Call”和“Call Completed”
我什至在真实设备中进行了测试,即使在那里也至少需要 3 秒。我在这里错过了什么吗?
我认为我的大多数错误都来自Firebase的更新.但我到了那里.
还是很喜欢Firebase!
好的,我正在尝试将列演示Spreadsheet导出到Firebase(代码如下).该错误似乎与Firebase参考有关.我知道如何在我的Firebase项目中修复它,但是它被挂钩到电子表格的脚本编辑器中.
错误:ReferenceError:未定义"FirebaseApp".(第13行,文件"export")
function writeDataToFirebase() {
var ss =
SpreadsheetApp.openById("1rV2_S2q5rcakOuHs2E1iLeKR2floRIozSytAt2iRXo8");
var sheet = ss.getSheets()[0];
var data = sheet.getDataRange().getValues();
var dataToImport = {};
for(var i = 1; i < data.length; i++) {
var year = data[i][0];
dataToImport[year] = {
caption:data[i][1]
};
}
var firebaseUrl = "https://test-db-9833d.firebaseio.com/";
// ERROR HERE ********************************************
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
base.setData("", dataToImport);
}
Run Code Online (Sandbox Code Playgroud) javascript google-sheets firebase firebase-realtime-database
将Firestore安全规则保存在代码的源代码管理(Github)中是否明智?
此外,在首次克隆存储库并安装应用程序时(自动用于开放源代码项目),自动部署安全规则的最佳方法是什么?就我而言,这是一个在Android Studio中使用Gradle构建的Android应用。
android gradle firebase firebase-security google-cloud-firestore
我正在尝试设置一个通用类来从Firebase检索数据,但我仍然坚持解析部分.
override fun onDataChange(snapshot: DataSnapshot) {
try {
val data: T? = snapshot.getValue(dataType)
onDataReadFromDatabase(data, d, snapshot, changeListener)
} catch(e: Exception) {
d.resumeWithException(e)
}
}
Run Code Online (Sandbox Code Playgroud)
T是我的数据类型,dataType是Class<T>.这适用于平面数据结构,但是当它list的子T节点失败时Expected a List while deserializing, but got a class java.util.HashMap.
失败的数据结构示例:
{
"id": "xxx",
"name": "test",
"items": {
"a": {"name": "itemA"},
"b": {"name": "itemB"},
"c": {"name": "itemC"},
"d": {"name": "itemD"}
}
}
Run Code Online (Sandbox Code Playgroud)
使用这样的模型:
data class ItemList(val id: String, val name: String, val items: MutableList<Item>) { …Run Code Online (Sandbox Code Playgroud) firebase ×8
android ×6
kotlin ×2
angularfire2 ×1
django ×1
gradle ×1
java ×1
javascript ×1
parsing ×1
tint ×1