作為初學者編碼器,我剛剛熟悉 Firebase/Firestore,并且我正在嘗試為朋友為他們的專案撰寫的一組可呼叫函式創建一個集成測驗。我正在撰寫一個測驗以使用 Firebase 本地仿真器套件進行自動化測驗。
現在,我正在嘗試使用 Axios 撰寫一個 POST 請求,該請求將在我的本地模擬器套件中的給定集合中創建一個檔案,在收到來自生成授權用戶的 Id 令牌之后。
專案 ID 稱為 okane-crud-dev。我創建了一個名為 test 的集合。
我已經使用給定的電子郵件和密碼創建了一個經過身份驗證的用戶,并從初始發布請求中生成了唯一的 Id 令牌:
interface createPostRequest { url: string; data: Object; config: Object; }; //create an instance of a user const createUserInstance : createPostRequest = { url: 'http://localhost:9099/identitytoolkit.googleapis.com/v1/accounts:signUp?key=hi', data: { 'email': '[email protected]', 'password': 'mypassword', 'returnSecureToken': true }, config: { 'headers': {'Content-Type': 'application/json'} }, }; const createUserResponse = await axios.post(createUserInstance.url, createUserInstance.data, createUserInstance.config); const userIdToken = createUserResponse.data.idToken; const userLocalId = createUserResponse.data.localId;
到目前為止,我沒有任何問題。
至于創建檔案的第二個 POST 請求,這是我的代碼。我用這篇文章作為參考: Creating new collection and document with Firestore REST API return HTTP 400
const createDocumentInstance : createPostRequest = {
url: "https://firestore.googleapis.com/v1beta1/projects/'localhost:8080/okane-crud-dev'/databases/(default)/documents/test",
data: {
"fields": {
"localId": userLocalId,
'budget': '2000',
}
},
//directly pasted IdToken as using the variable resulted in problem with ' ' error
config: {
'headers':
{
'Content-Type': 'application/json',
'Authorization': `Bearer ${userIdToken}`,
}
}};
console.log(createDocumentInstance);
const createDocument = await axios.post(createDocumentInstance.url, createDocumentInstance.data, createDocumentInstance.config);
const docReference = createDocument.data;
console.log(docReference);
當我嘗試運行它時,回傳了以下錯誤:
Request failed with status code 404
at createError (../../node_modules/axios/lib/core/createError.js:16:15)
at settle (../../node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (../../node_modules/axios/lib/adapters/http.js:293:11)
我是初學者,剛剛開始學習如何編碼,所以如果這是一個簡單的答案,請耐心等待,因為我仍在弄清楚如何除錯。
我知道 404 錯誤意味著定位資源的問題 -> 在對標頭進行了一些調整之后,我認為問題必須在我的 URL 中。我試著四處尋找其他使用本地模擬器套件和 POST 請求的帖子,以確定我撰寫路徑的方式是否有問題。
"https://firestore.googleapis.com/v1beta1/projects/'localhost:8080/okane-crud-dev'/databases/(default)/documents/test"
我一直在仔細查看 Firebase 檔案以創建檔案;https://firebase.google.com/docs/firestore/reference/rest/v1beta1/projects.databases.documents/createDocument#path-parameters
借用另一篇文章,我嘗試了包含模擬器套件埠的不同變體:localhost:8080 和專案 ID“okane-crud-dev”。但似乎還沒有弄清楚。我確保專案 ID 已連接到我的本地仿真器套件。有沒有人有什么建議?
uj5u.com熱心網友回復:
如果您將 Firestore Emulator 與 REST API 一起使用,則應將基本 URL 更改為https://firestore.googleapis.com/v1localhost http://localhost:8080/v1,然后繼續使用 Firestore 資料庫的路徑。
http://localhost:8080/v1/projects/okrane-crud-dev/databases/(default)/documents/test
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/512502.html
標籤:Google Cloud Collective 火力基地测试谷歌云火库http-post
