Java Firebase Admin SDK ValueEventListener 中的数据库路径变量
Database path variable in Java Firebase Admin SDK ValueEventListener
在 Java SDK 中,我想在下面的示例中使用 var 的值。
db = FirebaseDatabase.getInstance();
ref = db.getReference("/foo/{var}/bar");
ref.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot snapshot) {
... here I want the value of var
}
};
写入 /foo/foobar/bar 会触发事件,并显示正确的快照。我想访问值 "foobar"。
在云函数SDK中,我可以这样做:
functions.database.ref('/foo/{var}/bar').onWrite(e=>{
var value = e.params['var']; // would be foobar in above path
}
这在 Java SDK 中完全可行吗?询问父键只给我“{var}”而不是实际值。
对此类通配符路径的支持是 Cloud Functions SDK for Firebase 所独有的。 Firebase 数据库 SDK 不支持路径中的通配符。
所以你的代码:
ref = db.getReference("/foo/{var}/bar");
此代码(至少据我所知)仅匹配该确切路径 /foo/{var}/bar
。如果您看到此匹配 /foo
下的所有路径,您能否告诉我您正在使用的确切 SDK,因为我想试一试?
在 Java SDK 中,我想在下面的示例中使用 var 的值。
db = FirebaseDatabase.getInstance();
ref = db.getReference("/foo/{var}/bar");
ref.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot snapshot) {
... here I want the value of var
}
};
写入 /foo/foobar/bar 会触发事件,并显示正确的快照。我想访问值 "foobar"。
在云函数SDK中,我可以这样做:
functions.database.ref('/foo/{var}/bar').onWrite(e=>{
var value = e.params['var']; // would be foobar in above path
}
这在 Java SDK 中完全可行吗?询问父键只给我“{var}”而不是实际值。
对此类通配符路径的支持是 Cloud Functions SDK for Firebase 所独有的。 Firebase 数据库 SDK 不支持路径中的通配符。
所以你的代码:
ref = db.getReference("/foo/{var}/bar");
此代码(至少据我所知)仅匹配该确切路径 /foo/{var}/bar
。如果您看到此匹配 /foo
下的所有路径,您能否告诉我您正在使用的确切 SDK,因为我想试一试?