【问题标题】:How do I get data with Cloud Functions如何使用 Cloud Functions 获取数据
【发布时间】:2021-12-02 21:50:22
【问题描述】:

我想在 Firebase Cloud Functions 中 onCall 时在内部执行 http.get 并返回相应的邮政编码。 我想从 Flutter 打电话。

const functions = require("firebase-functions");
const admin = require('firebase-admin');
let http = require('https');
admin.initializeApp();
exports.postalCode = functions.https.onCall(async (data, context) => {
    //const URL = "https://zipcloud.ibsnet.co.jp/api/searchzipcode="+data.text;
const URL = 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=100-0002';
var data = [];
http.get(URL, (res) => {
    let body = '';
    res.setEncoding('utf8');

    res.on('data', (chunk) => {
        body += chunk;
        data.push(body);
    });

    res.on('end', (res) => {
        return data[0];
    });
    }).on('error', (e) => {
        console.log(e.message); //when Error
    });   
});

怎么了? 感谢您的支持。

【问题讨论】:

    标签: node.js flutter google-cloud-functions


    【解决方案1】:

    你能用node-fetch代替吗,会更容易

    const functions = require("firebase-functions");
    const admin = require('firebase-admin');
    const fetch = require('node-fetch');
    
    admin.initializeApp();
    exports.postalCode = functions.https.onCall(async (data, context) => {
        const URL = 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=100-0002';
        return (await fetch(URL)).json();
    
    });
    

    【讨论】:

    • 是否可以从flutter调用并从flutter获取???
    • 我不能使用节点获取。 [错误] 错误 [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users/nagayamasaru/node_modules/node-fetch/src/index.js require() of ES modules 不受支持。为什么???
    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 2021-12-26
    • 2019-10-17
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2020-10-17
    相关资源
    最近更新 更多