Javascript 如何在云函数中从Firebase数据库检索多个值?

Javascript 如何在云函数中从Firebase数据库检索多个值?,javascript,java,firebase,google-cloud-firestore,Javascript,Java,Firebase,Google Cloud Firestore,我在Java中使用了以下函数,它解决了我的问题,但是我也想使用javascript。所以我遇到了以下问题:我只找到了检索唯一值的函数,我想要一个类似于dataSnapshot.getChildren()的函数,它在Java中只有JavaScript的函数,如果没有,还有什么替代方案 为了更好地理解,我将把Java代码放在这里,它可以完美地工作 mRef.addListenerForSingleValueEvent(new ValueEventListener() {

我在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中也是如此

39HS93M61Zycaane8YZGRDCUTVAZ2KGDC,0.00151515 3QMTHAAYCQB8KJXF5NXBWSKYCFUKCNH8T,0.00151515 3AcNSeB9DX3ZKvGxMaec9uZ98rY2BJKuzW,0.00153787 36SJF1MBM2DE6YIMNY9T4EZ6Z7UA4RPG,0.001540903 AHr3GF12div1Kgf6DegeiHSGQYssvbmih,0.00162121 19VR7XCHAG1VUGGWBSZ5NYRVWYKDSQ3,0.00164545 3KmfDgW9RdWp7P2ns3tydXsiChR5U9XKdT,0.00165757 1C8RXPPQK8MRSWB8XPZ5DSYVYKJBLNHV3,0.00166212

数据库结构


如果您使用这段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中执行某些操作,就可以轻松地将其映射到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();
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中执行某些操作,您就可以轻松地将其映射到JavaScript。

根据我阅读的内容和用户告诉我的内容,我能够使用以下代码解决我的问题,这些代码完全符合我的要求

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);
     });
});

根据我读到的内容和用户告诉我的,我能够用下面的代码解决我的问题,这完全符合我的要求

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);
     });
});

你能添加数据库结构(截图)吗?As无法从java代码中解决您需要的问题。当然,请在帖子中查看我的更新。谢谢我已经找到了解决办法DCU是否可以添加数据库结构(屏幕截图)?As无法从java代码中解决您需要的问题。当然,请在帖子中查看我的更新。谢谢我已经找到了解决办法这对我帮助很大,它几乎起作用了,但我不得不对工作做一些修改。但我要离开这里,谢谢你!这对我帮助很大,它几乎起了作用,但我不得不对工作进行一些修改。但我要离开这里,谢谢你!