使用node.js中的firebase从谷歌云存储读取时,ESlint问题“每个都应该返回一个值或抛出”

Posted

技术标签:

【中文标题】使用node.js中的firebase从谷歌云存储读取时,ESlint问题“每个都应该返回一个值或抛出”【英文标题】:ESlint issue "Each then should return a value or throw" while reading from google cloud store using firebase in node.js 【发布时间】:2019-02-15 08:23:58 【问题描述】:

我想编写一个简单的 node.js 代码来从云存储中读取和写入。 我使用以下示例作为我的基础项目https://github.com/firebase/functions-samples/tree/master/quickstarts/uppercase-firestore 并通过查看https://firebase.google.com/docs/firestore/query-data/get-data 添加了以下功能 我从https://console.firebase.google.com手动添加了一个名称集合

这就是我添加的功能

exports.readMessage = functions.https.onRequest(async(req, res) => 
        var docRef = await admin.firestore().collection('messages').doc("Names");
        var getDoc = docRef.get()
            .then(doc => 
                if (!doc.exists) 
                    console.log('No such document!');
                 else 
                    res.json(
                        result: doc.data()
                    );
                    console.log('Document data:', doc.data());
                
            )
            .catch(err => 
                console.log('Error getting document', err);
            );

当我使用 firebase deploy 进行部署时,代码运行良好,但是在我的 IDE(即 VS Code)中,我看到一个错误,“然后每个都应该返回一个值或抛出:”。

【问题讨论】:

【参考方案1】:

解决方案是简单地添加一个return null; 语句,因此 readMessage 应该如下所示

exports.readMessage = functions.https.onRequest(async (req, res) => 
            var docRef = await admin.firestore().collection('messages').doc("Names");
            var getDoc = docRef.get()
                .then(doc => 
                    if (!doc.exists) 
                        console.log('No such document!');
                     else 
                        res.json(
                            result: doc.data()
                        );
                        console.log('Document data:', doc.data());
                    
                    return null;
                )
                .catch(err => 
                    console.log('Error getting document', err);
                );

【讨论】:

以上是关于使用node.js中的firebase从谷歌云存储读取时,ESlint问题“每个都应该返回一个值或抛出”的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从谷歌云函数(firebase)传递到前端?

从谷歌云存储中的 csv 加载数据作为 bigquery 'in' 查询

从谷歌云存储获取状态 503

如何从谷歌云存储中读取子目录/前缀中的文件?

如何从谷歌云存储中的多个文件中删除扩展名?

从谷歌云存储桶中读取文件