拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 GoogleFirebasehttpsCallable筹款网::ERR_NAME_NOT_RESOLVED

GoogleFirebasehttpsCallable筹款网::ERR_NAME_NOT_RESOLVED

白鹭 - 2022-02-10 2256 0 0

呼叫我的 firebase 项目的 API 时,我遇到了 net::ERR_NAME_NOT_RESOLVED。我尝试使用多个设备、两个互联网连接、一个 VPN、Linux、macOS、Windows 11 来排除由我的设备引起的任何错误。在浏览器上导航到 API 链接时,它不会超时,并且会向我提供回应。问题似乎出在使用 Firebase 提供的 httpsCallable 函式时。除了在浏览器中导航到它之外,firebase 上不存在被呼叫函式的日志。

这是我的代码:

const functions = firebase.functions
console.log(functions)
const loginWithCode = httpsCallable(functions, 'loginWithCode')

loginWithCode(loginPayload)
    .then((result) => {
        console.log(result)
    })
    .catch((error) => {
        console.log("ERROR CAUGHT HERE")
        console.log(error)
    });

我的浏览器控制台的输出:

service.ts:206 POST https://us-central1-"crowd-pleaser-75fd7",.cloudfunctions.net/loginWithCode net::ERR_NAME_NOT_RESOLVED
App.tsx:79 ERROR CAUGHT HERE
App.tsx:80 FirebaseError: internal

在firebase网页界面直接输入链接的结果:

{"error":{"message":"Bad Request","status":"INVALID_ARGUMENT"}}

有什么我遗漏的东西会造成这个问题吗?我已经在互联网上搜索,并在 StackOverflow 上寻找答案,但提供的所有解决方案都没有奏效。实作的方法正是在这里的 Firebase 档案中完成的

编辑:我的帖子请求发送到的链接的格式似乎很奇怪。也许这可能是问题所在?我不明白为什么它是这样格式化的。

uj5u.com热心网友回复:

我找到了解决问题的方法。我在编辑中的推测是正确的,httpsCallable 将发布请求发送到的 URL 格式不正确。我不确定为什么以这种方式格式化它,但是,快速的解决方案是将 getFunctions 回传的物件的 customDomain 类属性设定为正确的域。在我的情况下,这是通过执行以下操作来完成的:

functions.customDomain = functions.customDomain = 'https://us-central1-crowd-pleaser-75fd7.cloudfunctions.net'

上面代码中的变量'functions'是Firebase提供的getFunctions方法回传的class属性

uj5u.com热心网友回复:

事情

虽然我不是 Firebase 的专家,但问题是您使用 发出了错误的 HTTP 请求loginWithCode(loginPayload),至少我可以看到您的代码没有任何问题。

顺便说一句,您正在使用: const loginWithCode = httpsCallable(functions, 'loginWithCode') 而不是const loginWithCode = httpsCallable('addMessage') 这里描述的简单Google FireBase Docs

然后,制作一个 loginWithCode({ text: messageText })

此外,正如您在此处看到的:Google Firebase Docs:firebase.functions.HttpsCallable

您将能够将任何型别的资料传递给 HttpsCallable 函式,因此我们在起点处结束:您发出了错误的 HTTP 请求。

如 HTTP 回答中所述,错误是:net::ERR_NAME_NOT_RESOLVED当无法决议 DNS 请求时会发生这种情况,然后域不存在,因此这一切都会导致无法发送 HTTP 请求,因为没有路由在互联网上发现发送它。

问题:

在译码您发出 HTTP 请求的 url 时

service.ts:206 POST https://us-central1-"crowd-pleaser-75fd7",.cloudfunctions.net/loginWithCode net::ERR_NAME_NOT_RESOLVED
App.tsx:79 ERROR CAUGHT HERE
App.tsx:80 FirebaseError: internal

您会发现您将 HTTP 请求发送到:

https://us-central1-"crowd-pleaser-75fd7",.cloudfunctions.net/loginWithCode

如您所见,您会发现在发出 HTTP 请求时会出现问题:因为您无法"crowd-pleaser-75fd7",输入 URL 来发出 HTTP 请求。那是产生错误net::ERR_NAME_NOT_RESOLVED

我不确定你到底想做什么,但我认为 HTTP 请求的正确 URL 应该是:

https://us-central1-crowd-pleaser-75fd7.cloudfunctions.net/loginWithCode

使用此 URL,HTTP 请求必须至少通过。我建议然后检查loginPayload以解决此问题。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *