我有一个应用程序,存储256行数字,指示网格视图中每个256个单元格的背景颜色。目前所有的值都是-16449536,表示简单的黑色。
以下是我在Firebase数据库中的JSON结构
"publicwall" : {
"cell0" : -16449536,
"cell1" : -16449536,
...........
"cell254" : -16449536,
"cell255" : -16449536
},
在onCreative方法中,我使用for循环为每个单元格读取256次:
for (int i = 0; i < 256; i++) {
final int position = i;
DatabaseReference cell_color = mDatabase.child("publicwall").child("cell" + i);
cell_color.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ColorData = dataSnapshot.getValue(int.class);
gridAdapter.notifyColorChange(ColorData, position);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
并非所有网格都是黑色的。每次我重新打开应用程序以触发onCreate方法时,网格模式都会有所不同。我是否达到了firebase实时数据库的某些限制?
不管当前代码中存在什么问题,最好还是替换256(!!!)具有单个ChildEventListener的侦听器
:
mDatabase.child("publicwall").addChildEventListener(new ValueEventListener() {
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
String key = dataSnapshot.getKey();
int position = Integer.parseInt(key.substring(4));
ColorData = dataSnapshot.getValue(int.class);
gridAdapter.notifyColorChange(ColorData, position);
}
public void onChildChanged(DataSnapshot dataSnapshot) {
String key = dataSnapshot.getKey();
int position = Integer.parseInt(key.substring(4));
ColorData = dataSnapshot.getValue(int.class);
gridAdapter.notifyColorChange(ColorData, position);
}
...
}
您还需要实现其他一些方法,但这些是最重要的方法。
我建议阅读有关监听Firebase留档中数据列表的内容。
我目前有一个类似以下的数据库结构。如果无法在Firebase实时数据库安全规则中循环,我如何基于用户对多个组的访问来保护数据?要遵循的例子... 数据库结构: 我如何在上指定安全规则,以基于中指定的任何组与当前用户的
我有以下Firebase实时数据库连接到我的Flatter项目: 我对flutter和fire base相当陌生,我知道在我的flutter项目中访问此数据库中数据的一种方法是使用数据库引用变量。所以我有以下参考变量: 现在,如何使用此itemRef访问数据库中的温度和脉冲值?
我需要一个简单的方法来阻止任何人将下面的代码复制到他们的inspector工具中,从而添加错误的分数。没有用户,我只想限制浏览器的写入权限。Firebase实时数据库中的安全规则有没有办法做到这一点?现在我只有“.read”:true“.write”:true和验证。
我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire
我在XCode中编写了一个方法,在firebase实时数据库中保存“用户”。不幸的是,数据没有显示在我的浏览器中的实时数据库中,尽管我通过内置的打印命令从Xcode得到了反馈,一切都很顺利。有人知道吗?我真的很高兴听到你的消息。最美好的祝福 PS:是的:读取和写入在我的数据库规则中被激活。