我有以下在Java中执行的功能,它可以解决我的问题,但是我也想使用javascript。因此,我遇到了以下问题:我只找到了检索唯一值的函数,并且我想要一个类似于dataSnapshot.getChildren()
的函数,该函数在Java中只有JavaScript才有,否则,有什么替代方法?
为了更好地理解,我将在此处保留运行良好的Java代码。
mRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
float okk = Float.valueOf(ds.child("value").getValue(String.class))/100000000;
prov += ds.child("wallet").getValue(String.class)+", "+String.format(Locale.US,"%.8f", okk)+"\n";
ds.getRef().removeValue();
}
tx_array.setText(prov);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
输出必须看起来像这样,与Java相同。
39Hs93m61zYCaiaNe8yzgrDcutVAz2Kgdc,0.00151515 3QMTHAaYcQB8kJxF5nxxBwskyCFukCNH8t,0.00151515 3AcNSeB9DX3ZKvGxMaec9uZ98rY2BJKuzW,0.00153787 36SjF1MBm2DE6YimNYiy9T4ez6Z7UA4rpg,0.001540903 AHr3GF12div1Kgf6DegeiHSGQYssvbmih,0.00162121 19vR7xchAg1vUgGwATwBsz5NYrVWYKdSQ3,0.00164545 3KmfDgW9RdWp7P2ns3tydXsiChR5U9XKdT,0.00165757 1C8rxppQk8mRSWB8xPKZ5DsYVykJBLNhV3,0.00166212
数据库结构
答案 0 :(得分:1)
如果您使用这段Java代码:
mRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
float okk = Float.valueOf(ds.child("value").getValue(String.class))/100000000;
prov += ds.child("wallet").getValue(String.class)+", "+String.format(Locale.US,"%.8f", okk)+"\n";
ds.getRef().removeValue();
JavaScript中的等效项是:
ref.once("value").then(function(snapshot) {
snapshot.forEach(function(ds) {
var okk = ds.child("value").val() / 100000000;
prov += ds.child("wallet").val()+ ", "...
ds.ref.remove();
});
});
如果您经常遇到此类问题,强烈建议您并排阅读Android documentation和Web documentation。它们都遵循完全相同的结构,因此一旦您知道如何在Android中执行操作,就可以轻松将其映射到JavaScript。
答案 1 :(得分:0)
根据我阅读的内容以及用户告诉我的内容,我可以使用下面的代码来解决我的问题,该代码可以按我的意愿很好地工作。
exports.showEvent = functions.https.onRequest((req, res) => {
let prov = "";
return admin.database().ref('requests').once('value', (snapshot) => {
snapshot.forEach(function(ds) {
var okk = ds.child("value").val() / 100000000;
prov += ds.child("wallet").val()+ ", " + parseFloat(okk).toFixed(8) + "\n";
ds.ref.remove();
});
res.send(prov);
});
});