Monday, March 23, 2026
Homeโซเชียลมีเดียวิธีปรับปรุงบันทึกการจำลอง Firebase Emulator

วิธีปรับปรุงบันทึกการจำลอง Firebase Emulator

-


สวยขึ้นลบเสียงและปรับปรุงบันทึกการจำลอง Firebase Emulator ของคุณ

ฉันเป็นแฟนตัวยงของ Firebase และใช้ Emulator เพื่อการพัฒนาในท้องถิ่นอย่างกว้างขวางกับของเรา โซเชียลมีเดีย API– มีคุณสมบัติที่ยอดเยี่ยมมากมายของ emulator เช่นการจำลองฟังก์ชั่นคลาวด์, Firestore และแม้แต่ Pub/Sub หากคุณส่งออกบันทึก JSON ไปยังคอนโซลโดยใช้ console.logเอาต์พุตสามารถทนได้โดยเฉพาะอย่างยิ่งถ้าคุณจัดรูปแบบด้วย JSON.stringify({...}, null, "t")– อย่างไรก็ตามสิ่งต่าง ๆ ยุ่งเมื่อคุณใช้ Firebase’s ที่แนะนำ คนตัดไม้– คนบันทึกเป็นหลัก Google Cloud Loggerซึ่งช่วยให้คุณจัดโครงสร้างบันทึกและ JSON ของคุณเพื่อให้สามารถดูและค้นหาได้อย่างง่ายดายในแผงควบคุม Google Cloud

ในขณะที่เอาต์พุต Logger Firebase ดูดีในแผงควบคุม Google Cloud สิ่งที่ดูไม่ดีนักในเอาต์พุตเทอร์มินัลของเรา:

บันทึกการจำลอง Firebase Emulator

การเพิ่มบันทึกการจำลอง Firebase Emulator

เราต้องการอะไรกับบันทึกการจำลอง Firebase

  • การจัดรูปแบบของวัตถุ JSON เมื่อใช้เครื่องบันทึก
  • เอาต์พุตสีเพื่อให้เราสามารถเน้นข้อผิดพลาด
  • ลบข้อมูลภายนอกที่เราอาจไม่สนใจเช่น “ฟังก์ชั่น: คุณกำลังเรียกใช้ฟังก์ชั่น emulator ในโหมดดีบั๊ก (พอร์ต = 9229) ซึ่งหมายความว่าฟังก์ชั่นจะดำเนินการตามลำดับมากกว่าในแบบคู่ขนาน”

เนื่องจาก Firebase ยังไม่“ ยังให้ความสามารถเหล่านี้เรามาสร้างการปรับปรุงของเราเอง

เราจะบันทึกเอาต์พุตของเครื่องจำลอง Firebase ไปยังไฟล์ตรวจสอบไฟล์สำหรับการเปลี่ยนแปลงประมวลผลการเปลี่ยนแปลง (รูปแบบ ฯลฯ ) และส่งออกข้อมูลที่ประมวลผลไปยังคอนโซล

  1. โคลน Firebase-Emulator-logging ที่เก็บ GitHub นี่คือแอป Node.js เรียกใช้ทั่วไป npm set up ในไดเรกทอรีโคลน
  2. เริ่มต้น Firebase Emulator ตามปกติและส่งออกไปยังไฟล์ ตัวอย่างเช่น: firebase emulators:begin > save.txt หรือ npm run serve > save.txt
  3. ย้อนกลับไปในไดเรกทอรีโคลนเรียกใช้แอพโหนดด้วย node index.js --file {file location}– ตัวอย่างเช่น: node index.js --file ./save.txt
  4. เพลิดเพลินไปกับบันทึกใหม่!
บันทึกการจัดรูปแบบ Firebase
บันทึกการจำลอง Firebase Emulator

พารามิเตอร์บันทึกการบันทึก

มีตัวเลือกเล็กน้อยเมื่อเรียกใช้แอพโหนด คุณเคยเห็น – ไฟล์แล้ว แต่คุณยังสามารถตั้งค่าเอาท์พุทให้เงียบซึ่งหมายถึงเอาต์พุตระบบที่เริ่มต้นด้วย “ฟังก์ชั่น” หรือ “โฮสติ้ง” ถูกระงับและคุณสามารถปิดการจัดรูปแบบได้สวย

พารามิเตอร์ คำอธิบาย ที่จำเป็น
-ไฟล์ ไฟล์ต้นฉบับของบันทึก ใช่
-เงียบ ยับยั้งการบันทึกระบบเช่น “ฟังก์ชั่น”, “โฮสติ้ง”, “การจัดเก็บ” และ “PubSub” เลขที่
-ตีความได้ ปิดการจัดรูปแบบวัตถุ JSON ที่สวยงาม ค่าเริ่มต้น: จริง เลขที่
พารามิเตอร์การบันทึก Firebase Emulator

เบื้องหลัง

หากคุณต้องการดูรหัสทั้งหมดมุ่งหน้าไปที่ คนอื่น ๆหรือนี่คือไฟล์ index.js:

import readline from "readline";
import TailFile from "@logdna/tail-file";
import colorizer from "json-colorizer";

const QUIET_STRING = ("capabilities", "internet hosting", "storage", "pubsub");

const quiet = course of.argv.indexOf("--quiet");
const prettyOff = course of.argv.indexOf("--pretty-off");
const fileIndex = course of.argv.indexOf("--file");

if (fileIndex <= -1 || !course of.argv(fileIndex + 1)) {
  console.error(
    "You appear to be lacking the --file argument. Please present a file to tail."
  );
  course of.exit(1);
}

const choices = {
  fairly: prettyOff <= -1 ? true : false,
  colours: { STRING_LITERAL: "white" },
};

async perform startTail() {
  const tail = new TailFile(course of.argv(fileIndex + 1)).on(
    "tail_error",
    (err) => {
      console.error("TailFile had an error!", err);
    }
  );

  strive {
    await tail.begin();
    const linesplitter = readline.createInterface({
      enter: tail,
    });

    linesplitter.on("line", (line) => {
      if (
        quiet &&
        QUIET_STRING.some((str) =>
          new RegExp(`(?<=^...)(.*)${str}`, "gm").check(line)
        )
      )
        return;

      let newLine = line;
      if (newLine.startsWith(">") && newLine.endsWith("}")) {
        const overrideOptions = { ...choices };

        strive {
          const json = JSON.parse(newLine.slice(3));
          swap (json?.severity) {
            case "INFO":
              overrideOptions.colours.STRING_KEY = "blue";
              overrideOptions.colours.BRACE = "blue";
              break;
            case "WARNING":
              overrideOptions.colours.STRING_KEY = "yellow";
              overrideOptions.colours.BRACE = "yellow";
              break;
            case "ERROR":
              overrideOptions.colours.STRING_KEY = "crimson";
              overrideOptions.colours.BRACE = "crimson";
              break;
            default:
              break;
          }

          newLine = colorizer(newLine.slice(3), overrideOptions);
        } catch (err) {
          // ignore
        }
      }

      console.log(newLine);
    });
  } catch (err) {
    console.error("Can't begin. Does the file exist?", err);
  }
}

startTail().catch((err) => {
  course of.nextTick(() => {
    throw err;
  });
});

ใช้แพ็คเกจ NPM ภายนอกสองชุด:
import TailFile from "@logdna/tail-file";
import colorizer from "json-colorizer";

ไฟล์หางเป็นแพ็คเกจที่ยอดเยี่ยมที่อนุญาตให้ “หาง” ของไฟล์-เมื่อใดก็ตามที่มีการเปลี่ยนแปลงเกิดขึ้นเหตุการณ์จะเกิดขึ้น JSON colorizer เป็นแพ็คเกจที่ช่วยให้คุณสามารถระบุองค์ประกอบของ JSON ที่ได้รับสี

เกี่ยวกับ Ayrshare

Ayrshare เป็น โซเชียลมีเดีย API ที่ช่วยให้คุณเผยแพร่โพสต์รับการวิเคราะห์จัดการความคิดเห็นและส่งข้อความโดยตรงบนเครือข่ายสังคมออนไลน์โดยตรงจากแพลตฟอร์มของคุณ เรียนรู้เพิ่มเติมใน เอกสาร API โซเชียลมีเดีย

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
spot_img

Latest posts