AWS Lambda 中的 Firebase 实时数据库查询未获得最新结果

多拉诺普

我正在使用 firebase 实时数据库和 AWS Lambda + AWS API Gateway 构建一个用于数据库查询的 Web 应用程序。我遇到了 AWS Lambda 不返回最新项目的问题。

例如,如果我的数据库有项目 A、B、C,其中 C 是最新的。如果我使用 lambda 函数进行查询,它将返回 A、B、C。如果我添加 D,则 lambda “可能会或可能不会”返回 A、B、C、D。它可能只返回 A、B、C。这非常令人沮丧,我找不到根本原因。我只能假设它与 lambda 的冻结过程实现有关。或者它可能与 firebase 的实时数据库的性质有关,它监听数据的变化?我不知道。

如果有人遇到类似问题并找到了解决方案,请分享解决方案。

我将添加我的 aws lambda 函数的代码片段。

var admin = require("firebase-admin");
var serviceAccount = require("myserviceaccount");

var app = admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: <firebaseDB>
});

exports.handler = (event, context, callback) => {
    context.callbackWaitsForEmptyEventLoop = false;

    var items = [];
    var filter = event.params.querystring.filter;
    admin.database().ref('items').orderByChild('filter').equalTo(filter).limitToLast(20)
    .on('value', function(snapshots) {
        snapshots.forEach(function(snapshot) {
            var item = {
                itemId: snapshot.getKey(),
                data: snapshot.val()
            };
            items.push(item);
        });
        callback(null, feeds);
    });
};

问候,

多拉诺普

对于可能对此问题的解决方案感兴趣的任何人。

我能够通过在回调之前分离侦听器来解决该问题。Firebase 数据库是实时的,它会在您从数据库查询时添加侦听器。看起来当侦听器在 lambda 中处于活动状态时,lambda 实例会保留侦听器并且查询不会获得最新的项目。通过手动分离监听器,我能够解决这个问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS Lambda中的重试

来自分类Dev

Firebase-如何更新Firebase实时数据库中的对象

来自分类Dev

如何从Firebase实时数据库中删除?

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

Firebase:从实时数据库中检索childByAutoID

来自分类Dev

如何在firebase auth和firebase-实时数据库中获得相同的ID?

来自分类Dev

React + Firebase:如何添加项目以将数据列表到firebase实时数据库中

来自分类Dev

如何在AWS Lambda中抽象数据库连接?

来自分类Dev

Web中的Flutter Firebase实时数据库

来自分类Dev

数据更改后如何从Firebase实时数据库中检索特定数据

来自分类Dev

尝试从Node.js中的AWS Lambda函数读取S3存储桶的内容时未获得结果

来自分类Dev

如何从Firebase实时数据库获取最新记录

来自分类Dev

Firebase + JavaScript-从实时数据库获得10条最新记录

来自分类Dev

AWS Lambda中的Pytest

来自分类Dev

如何在flutter中从Firebase实时数据库中获取数据?

来自分类Dev

使用AWS NodeJS Lambda读取AWS dynamoDB中的过滤数据

来自分类Dev

如何更新Firebase实时数据库中的位置?

来自分类Dev

Android Firebase - 从 Firebase 实时数据库中检索特定值

来自分类Dev

从 Firebase 实时数据库中检索子数据

来自分类Dev

Firebase 实时数据库中的数据插入无限

来自分类Dev

AWS Lambda 中的 Oracle 数据库连接

来自分类Dev

在实时数据库中存储 Firebase 云消息

来自分类Dev

如何从android中的firebase实时数据库中获取数据

来自分类Dev

从 Firebase 实时数据库中检索好友

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

列表视图从android中firebase的实时数据库中检索一项

来自分类Dev

删除 firebase 实时数据库中的数据时,如何从列表中删除特定项目?

来自分类Dev

如何从firebase存储获取imageUrl以存储在firebase实时数据库中?

来自分类Dev

无法从 Firebase 实时数据库中检索数据

Related 相关文章

  1. 1

    AWS Lambda中的重试

  2. 2

    Firebase-如何更新Firebase实时数据库中的对象

  3. 3

    如何从Firebase实时数据库中删除?

  4. 4

    如何从Firebase中的实时数据库获取数据

  5. 5

    Firebase:从实时数据库中检索childByAutoID

  6. 6

    如何在firebase auth和firebase-实时数据库中获得相同的ID?

  7. 7

    React + Firebase:如何添加项目以将数据列表到firebase实时数据库中

  8. 8

    如何在AWS Lambda中抽象数据库连接?

  9. 9

    Web中的Flutter Firebase实时数据库

  10. 10

    数据更改后如何从Firebase实时数据库中检索特定数据

  11. 11

    尝试从Node.js中的AWS Lambda函数读取S3存储桶的内容时未获得结果

  12. 12

    如何从Firebase实时数据库获取最新记录

  13. 13

    Firebase + JavaScript-从实时数据库获得10条最新记录

  14. 14

    AWS Lambda中的Pytest

  15. 15

    如何在flutter中从Firebase实时数据库中获取数据?

  16. 16

    使用AWS NodeJS Lambda读取AWS dynamoDB中的过滤数据

  17. 17

    如何更新Firebase实时数据库中的位置?

  18. 18

    Android Firebase - 从 Firebase 实时数据库中检索特定值

  19. 19

    从 Firebase 实时数据库中检索子数据

  20. 20

    Firebase 实时数据库中的数据插入无限

  21. 21

    AWS Lambda 中的 Oracle 数据库连接

  22. 22

    在实时数据库中存储 Firebase 云消息

  23. 23

    如何从android中的firebase实时数据库中获取数据

  24. 24

    从 Firebase 实时数据库中检索好友

  25. 25

    Firebase 实时数据库,从键值对中获取数据

  26. 26

    列表视图从android中firebase的实时数据库中检索一项

  27. 27

    删除 firebase 实时数据库中的数据时,如何从列表中删除特定项目?

  28. 28

    如何从firebase存储获取imageUrl以存储在firebase实时数据库中?

  29. 29

    无法从 Firebase 实时数据库中检索数据

热门标签

归档