Firebase Studio ช่วยให้คุณปรับแต่งพื้นที่ทำงานให้ตรงกับความต้องการเฉพาะของโปรเจ็กต์ได้โดยการกำหนดไฟล์การกำหนดค่า .idx/dev.nix ไฟล์เดียวที่อธิบายสิ่งต่อไปนี้
- เครื่องมือระบบที่คุณต้องใช้เพื่อเรียกใช้ (เช่น จากเทอร์มินัล) เช่น คอมไพเลอร์หรือไบนารีอื่นๆ
 - ส่วนขยายที่คุณต้องติดตั้ง (เช่น การรองรับภาษาโปรแกรม )
 - ลักษณะที่ตัวอย่างแอปควรปรากฏ (เช่น คำสั่งในการเรียกใช้เว็บเซิร์ฟเวอร์)
 - ตัวแปรสภาพแวดล้อมส่วนกลางที่พร้อมใช้งานสำหรับเซิร์ฟเวอร์ในเครื่องที่ทำงานใน พื้นที่ทํางาน
 
ดูคำอธิบายทั้งหมดของฟีเจอร์ที่พร้อมใช้งานได้ในdev.nixข้อมูลอ้างอิง
Nix และ Firebase Studio
Firebase Studio ใช้ Nix เพื่อกำหนด การกำหนดค่าสภาพแวดล้อมสำหรับแต่ละพื้นที่ทำงาน กล่าวอย่างเจาะจงคือ Firebase Studio ใช้สิ่งต่อไปนี้
ภาษาโปรแกรม Nix เพื่ออธิบายสภาพแวดล้อมของพื้นที่ทำงาน Nix เป็นภาษาการเขียนโปรแกรมเชิงฟังก์ชัน แอตทริบิวต์และไลบรารีแพ็กเกจที่คุณกำหนดในไฟล์
dev.nixจะเป็นไปตามไวยากรณ์ชุดแอตทริบิวต์ NixNix Package Manager เพื่อจัดการเครื่องมือของระบบที่พร้อมใช้งานในพื้นที่ทำงาน ซึ่งคล้ายกับ เครื่องมือจัดการแพ็กเกจเฉพาะระบบปฏิบัติการ เช่น APT (
aptและapt-get), Homebrew (brew) และdpkg
เนื่องจากสภาพแวดล้อมของ Nix สามารถทำซ้ำและประกาศได้ ในบริบทของ Firebase Studio ซึ่งหมายความว่าคุณสามารถแชร์ไฟล์การกำหนดค่า Nix เป็นส่วนหนึ่งของที่เก็บ Git เพื่อให้มั่นใจว่าทุกคนที่ทำงานในโปรเจ็กต์ มีการกำหนดค่าสภาพแวดล้อมเดียวกัน
ตัวอย่างพื้นฐาน
ตัวอย่างต่อไปนี้แสดงการกำหนดค่าสภาพแวดล้อมพื้นฐานที่เปิดใช้ตัวอย่าง
{ pkgs, ... }: {
  # Which nixpkgs channel to use.
  channel = "stable-23.11"; # or "unstable"
  # Use https://search.nixos.org/packages to find packages
  packages = [
    pkgs.nodejs_20
  ];
  # Sets environment variables in the workspace
  env = {
    SOME_ENV_VAR = "hello";
  };
  # Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
  idx.extensions = [
    "angular.ng-template"
  ];
  # Enable previews and customize configuration
  idx.previews = {
    enable = true;
    previews = {
      web = {
        command = [
          "npm"
          "run"
          "start"
          "--"
          "--port"
          "$PORT"
          "--host"
          "0.0.0.0"
          "--disable-host-check"
        ];
        manager = "web";
        # Optionally, specify a directory that contains your web app
        # cwd = "app/client";
      };
    };
  };
}
เพิ่มเครื่องมือของระบบ
หากต้องการเพิ่มเครื่องมือของระบบลงในพื้นที่ทำงาน เช่น คอมไพเลอร์หรือโปรแกรม CLI สำหรับ
บริการระบบคลาวด์ ให้ค้นหารหัสแพ็กเกจที่ไม่ซ้ำกันในรีจิสทรีแพ็กเกจ Nix แล้วเพิ่มลงในออบเจ็กต์ packages ของไฟล์
dev.nix โดยมีคำนำหน้าเป็น `pkgs.:
{ pkgs, ... }: {
  # Which nixpkgs channel to use.
  channel = "stable-23.11"; # or "unstable"
  # Use https://search.nixos.org/packages to find packages
  packages = [
    pkgs.nodejs_20
  ];
  ...
}
ซึ่งแตกต่างจากวิธีที่คุณอาจติดตั้งแพ็กเกจระบบโดยทั่วไปโดยใช้ตัวจัดการแพ็กเกจเฉพาะระบบปฏิบัติการ เช่น APT (apt และ apt-get), Homebrew (brew) และ dpkg การอธิบายอย่างชัดเจนว่าต้องใช้แพ็กเกจระบบใดบ้างหมายความว่าFirebase Studio Workspace จะแชร์และทำซ้ำได้ง่ายขึ้น
ใช้ไบนารีของโหนดในเครื่อง
เช่นเดียวกับในเครื่องของคุณ ไบนารีที่เกี่ยวข้องกับแพ็กเกจ Node ที่ติดตั้งในเครื่อง (เช่น แพ็กเกจที่กำหนดไว้ใน package.json) สามารถเรียกใช้ในแผงเทอร์มินัลได้โดยการเรียกใช้ด้วยnpx คำสั่ง
เพื่อความสะดวกยิ่งขึ้น หากคุณอยู่ในไดเรกทอรีที่มีโฟลเดอร์ node_modules (เช่น ไดเรกทอรีรูทของโปรเจ็กต์เว็บ) คุณจะเรียกใช้ไบนารีที่ติดตั้งในเครื่องได้โดยตรงโดยไม่ต้องมีคำนำหน้า npx
เพิ่มคอมโพเนนต์ gcloud
การกำหนดค่าเริ่มต้นของ
gcloud CLI สำหรับ Google Cloud
พร้อมใช้งานใน Workspace Firebase Studio ทั้งหมด
หากต้องการคอมโพเนนต์เพิ่มเติม คุณสามารถเพิ่มลงในไฟล์ dev.nix ได้โดยทำดังนี้
{ pkgs }: {
  packages = [
    ...
    (pkgs.google-cloud-sdk.withExtraComponents [
      pkgs.google-cloud-sdk.components.cloud-datastore-emulator
    ])
    ...
  ];
}
เพิ่มส่วนขยาย IDE
คุณติดตั้งส่วนขยายใน Firebase Studio โดยใช้รีจิสทรีส่วนขยาย OpenVSX ได้ 2 วิธี ดังนี้
ใช้แผงส่วนขยายใน Firebase Studio เพื่อค้นหา และติดตั้งส่วนขยาย แนวทางนี้เหมาะที่สุดสำหรับส่วนขยายที่เฉพาะเจาะจงสำหรับผู้ใช้ เช่น
- ธีมสีแบบกำหนดเอง
 - การจำลองโปรแกรมแก้ไข เช่น VSCodeVim
 
เพิ่มส่วนขยายลงในไฟล์
dev.nixระบบจะติดตั้งส่วนขยายเหล่านี้โดยอัตโนมัติเมื่อคุณแชร์การกำหนดค่าพื้นที่ทำงาน วิธีนี้เหมาะที่สุดสำหรับส่วนขยายเฉพาะโปรเจ็กต์ เช่น- ส่วนขยายภาษาการเขียนโปรแกรม รวมถึงดีบักเกอร์เฉพาะภาษา
 - ส่วนขยายอย่างเป็นทางการสำหรับบริการระบบคลาวด์ที่ใช้ในโปรเจ็กต์
 - ตัวจัดรูปแบบโค้ด
 
สำหรับแนวทางที่ 2 คุณสามารถรวมส่วนขยาย IDE ไว้ในไฟล์ dev.nix
ได้โดยค้นหารหัสส่วนขยายที่สมบูรณ์ (ในรูปแบบ
<publisher>.<id>) แล้วเพิ่มลงในออบเจ็กต์ idx.extensions
 ดังนี้
{ pkgs, ... }: {
  ...
  # Search for the extensions you want on https://open-vsx.org/ and use the format
  # "<publisher>.<id>"
  idx.extensions = [
    "angular.ng-template"
  ];
  ...
}
เพิ่มบริการทั่วไป
Firebase Studio ยังมีการตั้งค่าและการกำหนดค่าที่ง่ายขึ้นสำหรับ บริการทั่วไปที่คุณอาจต้องใช้ในระหว่างการพัฒนา ซึ่งรวมถึง
- คอนเทนเนอร์
- Docker (
services.docker.*) 
 - Docker (
 - การรับส่งข้อความ
- โปรแกรมจำลอง Pub/Sub (
services.pubsub.*) 
 - โปรแกรมจำลอง Pub/Sub (
 - ฐานข้อมูล
- MySQL (
services.mysql.*) - Postgres (
services.postgres.*) - Redis (
services.redis.*) - Spanner (
services.spanner.*) 
 - MySQL (
 
ดูรายละเอียดเกี่ยวกับการเปิดใช้บริการเหล่านี้ในพื้นที่ทํางานได้ที่ส่วน services.*
 ของข้อมูลอ้างอิง dev.nix
ปรับแต่งตัวอย่าง
ดูรายละเอียดเกี่ยวกับวิธีปรับแต่งตัวอย่างแอปได้ที่แสดงตัวอย่างแอป
ตั้งค่าไอคอนพื้นที่ทำงาน
คุณเลือกไอคอนที่กำหนดเองสำหรับพื้นที่ทำงานได้โดยวางไฟล์ PNG ที่ชื่อ
icon.png ไว้ในไดเรกทอรี .idx ที่ระดับเดียวกับไฟล์ dev.nix
Firebase Studio จะใช้ไอคอนนี้เพื่อแสดงพื้นที่ทำงานในแดชบอร์ด
เนื่องจากตรวจสอบไฟล์นี้ได้ในการควบคุมแหล่งที่มา (เช่น Git) จึงเป็นวิธีที่ดีในการช่วยให้ทุกคนที่ทำงานในโปรเจ็กต์เห็นไอคอนเดียวกันสำหรับโปรเจ็กต์เมื่อใช้ Firebase Studio และเนื่องจากไฟล์อาจแตกต่างกันในสาขา Git คุณจึงใช้ไอคอนนี้เพื่อแยกความแตกต่างระหว่างพื้นที่ทํางานของแอปเวอร์ชันเบต้ากับเวอร์ชันที่ใช้งานจริง และเพื่อวัตถุประสงค์อื่นๆ ได้
เปลี่ยนการปรับแต่งให้เป็นเทมเพลต
หากต้องการเปลี่ยนการกำหนดค่าสภาพแวดล้อมให้เป็น "สภาพแวดล้อมเริ่มต้น" ที่ทุกคน ใช้สร้างโปรเจ็กต์ใหม่ได้ โปรดดูเอกสารสำหรับสร้างเทมเพลตที่กำหนดเอง
ดูตัวเลือกการปรับแต่งทั้งหมด
ดูdev.nixข้อมูลอ้างอิงเพื่อดูคำอธิบายโดยละเอียดของสคีมาการกำหนดค่าสภาพแวดล้อม
ดาวน์โหลดไฟล์
วิธีดาวน์โหลดไฟล์เป็นไฟล์ ZIP
- คลิกขวาที่ไดเรกทอรีใดก็ได้ในแผง Explorer แล้วเลือกบีบอัดและดาวน์โหลด
 
วิธีดาวน์โหลดทุกอย่างในไดเรกทอรีโปรเจ็กต์
เลือกไฟล์ > เปิดโฟลเดอร์
ยอมรับไดเรกทอรี
/home/userเริ่มต้นหลังจากโหลดไฟล์แล้ว ให้คลิกขวาที่ไดเรกทอรีการทำงาน แล้วเลือกZip และดาวน์โหลด หากใช้App Prototyping agent ไดเรกทอรีที่ใช้งานอยู่จะเป็น
studioหาก ใช้เทมเพลตหรือโปรเจ็กต์ที่อัปโหลด นี่จะเป็นชื่อโปรเจ็กต์ของคุณเมื่อได้รับข้อความแจ้งให้สร้างสภาพแวดล้อมใหม่ ให้คลิกยกเลิก
หลังจากดาวน์โหลดเสร็จแล้ว ให้เปิดไดเรกทอรีการทำงานอีกครั้งจากเมนูไฟล์เพื่อกลับไปยังพื้นที่ทำงาน
ขั้นตอนถัดไป
- ผสานรวมกับ Firebase และบริการของ Google
 - สร้างเทมเพลตที่กำหนดเอง
 - เพิ่มปุ่มเปิดใน Firebase Studio
 - ดูข้อมูลเพิ่มเติมเกี่ยวกับ Firebase Studioพื้นที่ทำงาน