在firebase中,我試圖以人類可讀的格式記錄一些JSON物件,但它要么列印為[object]要么轉義在字串化時沒有中間立場。它以相同的方式顯示在日志儀表板上。例如,
const data = {
event: 'my-event',
value: 'foo-bar-baz',
};
functions.logger.log(`data = ${data}`);
functions.logger.log(`dataStringified = ${JSON.stringify(data)}`);
列印為
> {"severity":"INFO","message":"data = [object Object]"}
> {"severity":"INFO","message":"data2 = {\"event\":\"my-event\",\"value\":\"foo-bar-baz\"}"}
我究竟做錯了什么?
uj5u.com熱心網友回復:
您沒有做錯任何事情,訊息物件有效負載是一個字串,"data2 = {\"event\":\"my-event\",\"value\":\"foo-bar-baz\"}"以便在默認狀態下顯示鍵值對(使用雙引號),實際訊息中的雙引號需要轉義,否則訊息值將通過顯示另一個雙引號符號提前終止,您將獲得如下所示的輸出:"data2 = {". 您可以做些什么來使其更具人類可讀性,即用單引號替換字串化為您提供的雙引號。這樣的事情應該這樣做:
functions.logger.log(`dataStringified = ${JSON.stringify(data).replaceAll('"',"'")}`);
我使用我的模擬器在本地運行它并收到以下輸出:
{
"severity": "INFO",
"message": "dataStringified = {'event':'my-event','value':'foo-bar-baz'}"
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/524658.html
