สร้างด้วย Firebase Data Connect (Android)

1. ภาพรวม

ddc52cd46f923cf1.png

ในโค้ดแล็บนี้ คุณจะได้ผสานรวม Firebase Data Connect กับฐานข้อมูล Cloud SQL เพื่อสร้างแอปรีวิวภาพยนตร์บน Android และจะได้เรียนรู้วิธีต่อไปนี้

  • เขียนสคีมา GraphQL สําหรับ Firebase Data Connect
  • เขียนการค้นหาและการดัดแปลง
  • ใช้การตรวจสอบสิทธิ์ของผู้ใช้เพื่อรักษาความปลอดภัยให้ข้อมูล

ข้อกำหนดเบื้องต้น

  • Android Studio เวอร์ชันล่าสุด
  • โปรแกรมจำลอง Android ที่มี API ระดับ 23 ขึ้นไป

สิ่งที่คุณจะได้เรียนรู้

  • วิธีตั้งค่า Firebase Data Connect ด้วยโปรแกรมจำลองภายใน
  • วิธีออกแบบสคีมาข้อมูลโดยใช้ Data Connect และ GraphQL
  • วิธีเขียนการค้นหาและการดัดแปลงสําหรับแอปรีวิวภาพยนตร์
  • วิธีสร้าง Kotlin SDK และใช้ SDK ดังกล่าวในแอป Android
  • (ไม่บังคับ) วิธีทำให้บริการเชื่อมต่อข้อมูลใช้งานได้จริง

2. ตั้งค่าโปรเจ็กต์ตัวอย่าง

สร้างโปรเจ็กต์ Firebase

  1. ลงชื่อเข้าใช้คอนโซล Firebase ด้วยบัญชี Google
  2. ในคอนโซล Firebase ให้คลิกเพิ่มโปรเจ็กต์
  3. ป้อนชื่อโปรเจ็กต์ Firebase (เช่น "รีวิวภาพยนตร์") แล้วคลิก "ดำเนินการต่อ"
  4. ระบบอาจขอให้คุณเปิดใช้ Google Analytics แต่การเลือกของคุณไม่สําคัญต่อวัตถุประสงค์ของโค้ดแล็บนี้
  5. หลังจากผ่านไปประมาณ 1 นาที โปรเจ็กต์ Firebase จะพร้อมใช้งาน คลิก "ดำเนินการต่อ"

ดาวน์โหลดรหัส

เรียกใช้คําสั่งต่อไปนี้เพื่อโคลนโค้ดตัวอย่างสําหรับโค้ดแล็บนี้ ซึ่งจะสร้างไดเรกทอรีชื่อ codelab-dataconnect-android ในเครื่อง

git clone https://github.com/firebaseextended/codelab-dataconnect-android.git

หากไม่มี Git ในเครื่อง คุณก็สามารถดาวน์โหลดโค้ดจาก GitHub ได้โดยตรง

เพิ่มการกําหนดค่า Firebase

  1. ในคอนโซล Firebase ให้เลือกภาพรวมโปรเจ็กต์ในการนําทางด้านซ้าย คลิกปุ่ม Android เพื่อเลือกแพลตฟอร์ม เมื่อระบบแจ้งให้ระบุชื่อแพ็กเกจ ให้ใช้ com.google.firebase.example.dataconnect
  2. คลิก "ลงทะเบียนแอป" แล้วทําตามวิธีการเพื่อดาวน์โหลดไฟล์ google-services.json แล้วย้ายไฟล์ไปยังไดเรกทอรี app/ ของโค้ดที่เพิ่งดาวน์โหลด จากนั้นคลิกถัดไป

3. ตั้งค่า Data Connect

การติดตั้ง

การติดตั้งอัตโนมัติ

เรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรี codelab-dataconnect-android

curl -sL https://firebase.tools/dataconnect | bash

สคริปต์นี้จะพยายามตั้งค่าสภาพแวดล้อมการพัฒนาให้คุณและเปิด IDE บนเบราว์เซอร์ IDE นี้จัดเตรียมเครื่องมือต่างๆ รวมถึงส่วนขยาย VS Code ที่รวมไว้ล่วงหน้า เพื่อช่วยคุณจัดการสคีมา รวมถึงกำหนดการค้นหาและการดัดแปลงที่จะใช้ในแอปพลิเคชัน และสร้าง SDK แบบประเภทที่แน่นอน

หลังจากเรียกใช้สคริปต์แล้ว VS Code ควรเปิดขึ้นโดยอัตโนมัติ

หมายเหตุ: หากคุณติดตั้ง VS Code เวอร์ชันเดสก์ท็อปไว้แล้ว สคริปต์จะเปิด VS Code โดยอัตโนมัติ หากสคริปต์ไม่ทํางาน ให้ทําตามขั้นตอนการติดตั้งด้วยตนเองด้านล่าง

การติดตั้งด้วยตนเอง

  1. ติดตั้ง Visual Studio Code
  2. ติดตั้ง Node.js
  3. เปิดไดเรกทอรี codelab-dataconnect-android ใน VS Code
  4. ติดตั้งส่วนขยาย Firebase Data Connect จาก Visual Studio Code Marketplace

เริ่มต้นใช้งาน Data Connect ในโปรเจ็กต์

ในแผงด้านซ้ายมือ ให้คลิกไอคอน Firebase เพื่อเปิด UI ของส่วนขยาย Data Connect ใน VS Code

  1. คลิกปุ่มลงชื่อเข้าใช้ด้วย Google หน้าต่างเบราว์เซอร์จะเปิดขึ้น ให้ทำตามวิธีการเพื่อลงชื่อเข้าใช้ส่วนขยายด้วยบัญชี Google ef59f25a9e9cbfff.png
  2. คลิกปุ่มเชื่อมต่อโปรเจ็กต์ Firebase แล้วเลือกโปรเจ็กต์ที่คุณสร้างไว้ก่อนหน้านี้ในคอนโซล 951a836ba0682494.png

คลิกปุ่ม Run firebase init แล้วทําตามขั้นตอนในเทอร์มินัลแบบรวม

กำหนดค่าการสร้าง SDK

เมื่อคลิกปุ่มเรียกใช้ firebase init ส่วนขยาย Firebase Data Connect ควรเริ่มต้นไดเรกทอรี dataconnect/ ให้คุณ

ใน VS Code ให้เปิดไฟล์ dataconnect/connector/connector.yaml แล้วคุณจะเห็นการกําหนดค่าเริ่มต้น หากต้องการให้เห็นภาพการสร้างโค้ดในโค้ดแล็บนี้ได้ง่ายขึ้น ให้เปลี่ยน connectorId เป็น movies และ package เป็น com.google.firebase.example.dataconnect.generated

connectorId: movies
generate:
  kotlinSdk:
    outputDir: ../../app/src/main/java
    package: com.google.firebase.example.dataconnect.generated

ความหมายของสถานะแต่ละรายการมีดังนี้

  • connectorId - ชื่อที่ไม่ซ้ำกันสำหรับเครื่องมือเชื่อมต่อนี้
  • outputDir - เส้นทางที่จะจัดเก็บ Data Connect SDK ที่สร้างขึ้น เส้นทางนี้สัมพันธ์กับไดเรกทอรีที่มีไฟล์ connector.yaml
  • package - ชื่อแพ็กเกจที่จะใช้ใน SDK ที่สร้างขึ้น

เริ่มโปรแกรมจำลอง Firebase

ใน VS Code ให้คลิกปุ่มเริ่มโปรแกรมจำลอง

93fb67962e96a7cb.png

คุณควรเห็นโปรแกรมจำลองเริ่มทำงานในเทอร์มินัลที่ผสานรวม หากเริ่มต้นอย่างถูกต้อง คุณควรเห็นเอาต์พุตที่มีลักษณะดังนี้

8504ae0080923823.png

กำหนดค่าแอป Android ให้ใช้โปรแกรมจำลองในเครื่อง

  1. เปิด Android Studio
  2. ในหน้าจอต้อนรับของ Android Studio ให้คลิกปุ่มเปิด แล้วเลือกไดเรกทอรี codelab-dataconnect-android รอให้ Gradle ซิงค์
  3. เมื่อการซิงค์ Gradle เสร็จสมบูรณ์แล้ว ให้เปิดไฟล์ app/src/main/java/com/google/firebase/example/dataconnect/MainActivity.kt แล้วเรียกใช้ useEmulator() ดังนี้
import com.google.firebase.example.dataconnect.generated.MoviesConnector
import com.google.firebase.example.dataconnect.generated.instance

class MainActivity : ComponentActivity() {
  ...

  // Initialize Firebase Data Connect
  MoviesConnector.instance.dataConnect.useEmulator("10.0.2.2", 9399)

  ...
}

4. กําหนดสคีมาและป้อนข้อมูลฐานข้อมูลล่วงหน้า

ในส่วนนี้ คุณจะต้องกำหนดโครงสร้างและความสัมพันธ์ระหว่างเอนทิตีหลักในแอปพลิเคชันภาพยนตร์ในสคีมา เอนทิตี เช่น Movie, User และ Review จะแมปกับตารางฐานข้อมูล โดยมีการสร้างความสัมพันธ์โดยใช้ Firebase Data Connect และคำสั่งสคีมา GraphQL

เอนทิตีและความสัมพันธ์หลัก

ประเภท Movie มีรายละเอียดสำคัญ เช่น ชื่อ ประเภท และแท็ก ซึ่งแอปใช้สำหรับการค้นหาและโปรไฟล์ภาพยนตร์ ประเภท User จะติดตามการโต้ตอบของผู้ใช้ เช่น รีวิวและรายการโปรด Review เชื่อมต่อผู้ใช้กับภาพยนตร์ โดยให้แอปแสดงการให้คะแนนและความคิดเห็นที่ผู้ใช้สร้างขึ้น

ตารางผู้ใช้

ประเภทผู้ใช้จะกำหนดเอนทิตีผู้ใช้ที่โต้ตอบกับภาพยนตร์ด้วยการเขียนรีวิวหรือตั้งภาพยนตร์เป็นรายการโปรด

ใน VS Code ให้เปิดไฟล์ dataconnect/schema/schema.gql แล้วยกเลิกการคอมเมนต์ (หรือเพิ่ม) คําจํากัดความตาราง User ดังนี้

# Users
# Suppose a user can leave reviews for movies
# user  -> reviews is a one to many relationship,
# movie -> reviews is a one to many relationship
# movie <-> user is a many to many relationship
type User @table {
  id: String! @col(name: "user_auth")
  username: String! @col(name: "username", dataType: "varchar(50)")
  # The following are generated by the user: User! field in the Review table
  # reviews_on_user 
  # movies_via_Review
}

ตารางภาพยนตร์

ประเภท Movie จะกำหนดโครงสร้างหลักสำหรับเอนทิตีภาพยนตร์ ซึ่งรวมถึงช่องต่างๆ เช่น ชื่อ ประเภท ปีเผยแพร่ และการจัดประเภท

ใน VS Code ให้เปิดไฟล์ dataconnect/schema/schema.gql แล้วยกเลิกการใส่คำอธิบายประกอบ (หรือเพิ่ม) คําจํากัดความตาราง Movie ดังนี้

# Movies
type Movie @table {
  # The below parameter values are generated by default with @table, and can be edited manually.
  # implies directive `@col(name: "movie_id")`, generating a column name
  id: UUID! @default(expr: "uuidV4()")
  title: String!
  imageUrl: String!
  genre: String
}

ตาราง MovieMetadata

ประเภท MovieMetadata จะสร้างความสัมพันธ์แบบ 1:1 กับประเภท Movie ซึ่งรวมถึงข้อมูลเพิ่มเติม เช่น ผู้กำกับภาพยนตร์

ใน VS Code ให้เปิดไฟล์ dataconnect/schema/schema.gql แล้วยกเลิกการคอมเมนต์ (หรือเพิ่ม) คําจํากัดความตาราง MovieMetadata ดังนี้

# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
  # @unique indicates a 1-1 relationship
  movie: Movie! @unique 
  # movieId: UUID <- this is created by the above reference
  rating: Float
  releaseYear: Int
  description: String
}

ตารางการตรวจสอบ

ประเภทรีวิวแสดงถึงเอนทิตีรีวิวและลิงก์ประเภทผู้ใช้และภาพยนตร์ในความสัมพันธ์แบบหลายต่อหลาย (ผู้ใช้ 1 คนสามารถเขียนรีวิวได้หลายรายการ และภาพยนตร์แต่ละเรื่องมีรีวิวได้หลายรายการ)

ใน VS Code ให้เปิดไฟล์ dataconnect/schema/schema.gql แล้วยกเลิกการคอมเมนต์ (หรือเพิ่ม) คําจํากัดความตาราง Review ดังนี้

# Reviews
type Review @table(name: "Reviews", key: ["movie", "user"]) {
  id: UUID! @default(expr: "uuidV4()")
  user: User!
  movie: Movie!
  rating: Int
  reviewText: String
  reviewDate: Date! @default(expr: "request.time")
}

ช่องและค่าเริ่มต้นที่สร้างขึ้นโดยอัตโนมัติ

สคีมาใช้นิพจน์อย่าง @default(expr: "uuidV4()") เพื่อสร้างรหัสที่ไม่ซ้ำกันและการประทับเวลาโดยอัตโนมัติ ตัวอย่างเช่น ช่องรหัสในประเภทภาพยนตร์และรีวิวจะป้อนข้อมูล UUID โดยอัตโนมัติเมื่อมีการสร้างระเบียนใหม่

แทรกข้อมูลจำลอง

เมื่อกําหนดสคีมาแล้ว คุณสามารถป้อนข้อมูลจําลองลงในฐานข้อมูลล่วงหน้าเพื่อทดสอบได้

  1. เปิด dataconnect/moviedata_insert.gql ใน VS Code ตรวจสอบว่าโปรแกรมจําลองในส่วนขยาย Firebase Data Connect ทํางานอยู่
  2. คุณควรเห็นปุ่มเรียกใช้ (ในเครื่อง) ที่ด้านบนของไฟล์ คลิกเพื่อแทรกข้อมูลภาพยนตร์จำลองลงในฐานข้อมูล

b070f025e573ab9b.png

  1. ตรวจสอบเทอร์มินัลการดําเนินการของการเชื่อมต่อข้อมูลเพื่อยืนยันว่าเพิ่มข้อมูลสําเร็จ

e2058cb4db857058.png

เมื่อป้อนข้อมูลแล้ว ให้ไปยังขั้นตอนถัดไปเพื่อดูวิธีสร้างการค้นหาใน Data Connect

5. สร้างการค้นหาเพื่อแสดงรายการภาพยนตร์

เริ่มต้นด้วยการสร้างการค้นหาเพื่อแสดงรายการภาพยนตร์ คุณจะดึงข้อมูลรหัส ชื่อ imageUrl และประเภทสำหรับภาพยนตร์แต่ละเรื่อง

กําหนดคําค้นหา

ใน VS Code ให้เปิดไฟล์ dataconnect/connector/queries.gql แล้วยกเลิกการคอมเมนต์ (หรือเพิ่ม) การค้นหา ListMovies ดังนี้

query ListMovies @auth(level: PUBLIC) {
  movies {
    id
    title
    imageUrl
    genre
  }
}

หากต้องการทดสอบการค้นหาใหม่ ให้คลิกปุ่มเรียกใช้ (ในเครื่อง) เพื่อเรียกใช้การค้นหากับฐานข้อมูลในเครื่อง รายการภาพยนตร์จากฐานข้อมูลควรแสดงในส่วน "ผลลัพธ์" ของเทอร์มินัลการเรียกใช้การเชื่อมต่อข้อมูล

822bf32321df4716.png

โทรจากแอป Android

เมื่อทดสอบการค้นหาในโปรแกรมจําลองการเชื่อมต่อข้อมูลแล้ว ก็ถึงเวลาเพิ่มการค้นหาลงในแอป

ใน Android Studio ให้เปิดไฟล์ app/src/main/java/com/google/firebase/example/dataconnect/MoviesScreen.kt แล้วเพิ่มโค้ดต่อไปนี้เพื่อแสดงรายการภาพยนตร์ในรูปแบบตารางกริด

import com.google.firebase.example.dataconnect.generated.ListMoviesQuery
import com.google.firebase.example.dataconnect.generated.MoviesConnector
import com.google.firebase.example.dataconnect.generated.execute
import com.google.firebase.example.dataconnect.generated.instance

@Composable
fun MoviesScreen(
    onMovieClicked: (id: String) -> Unit
) {
    var movies by remember { mutableStateOf(emptyList<ListMoviesQuery.Data.MoviesItem>()) }
    LaunchedEffect(Unit) {
        // Queries need to be executed in a coroutine context
        try {
          movies = MoviesConnector.instance.listMovies.execute().data.movies
        } catch (e: Exception) {
          // Will be done at a later step
        }
    }
    LazyVerticalGrid(GridCells.Adaptive(150.dp)) {
        items(movies) { movie ->
            MovieCard(
                movieId = movie.id.toString(),
                movieTitle = movie.title,
                movieImageUrl = movie.imageUrl,
                movieGenre = movie.genre,
                onMovieClicked = {
                    onMovieClicked(movie.id.toString())
                }
            )
        }
    }
}

เรียกใช้แอป

ใน Android Studio ให้คลิกปุ่ม "เรียกใช้" เพื่อเปิดแอปในโปรแกรมจำลอง Android

เมื่อแอปเปิดขึ้น คุณควรเห็นหน้าจอที่มีลักษณะดังนี้

ddc52cd46f923cf1.png

6. สร้างการค้นหารายละเอียดภาพยนตร์

เมื่อแอปแสดงรายการภาพยนตร์ได้แล้ว มาสร้างการค้นหาเพื่อแสดงรายละเอียดของภาพยนตร์แต่ละเรื่องกัน

กําหนดคําค้นหา

ใน VS Code ให้เปิดไฟล์ dataconnect/connector/queries.gql แล้วยกเลิกการคอมเมนต์ (หรือเพิ่ม) การค้นหา GetMovieById ดังนี้

# Get movie by id
query GetMovieById($id: UUID!) @auth(level: PUBLIC) {
  movie(id: $id) {
    id
    title
    imageUrl
    genre
    metadata: movieMetadata_on_movie {
      rating
      releaseYear
      description
    }
    reviews: reviews_on_movie {
      id
      reviewText
      reviewDate
      rating
      user {
        id
        username
      }
    }
  }
}

โทรจากแอป Android

ใน Android Studio ให้เปิดไฟล์ app/src/main/java/com/google/firebase/example/dataconnect/MovieDetailScreen.kt แล้วเพิ่มโค้ดต่อไปนี้

importcom.google.firebase.example.dataconnect.generated.GetMovieByIdQuery
importcom.google.firebase.example.dataconnect.generated.MoviesConnector
importcom.google.firebase.example.dataconnect.generated.execute
importcom.google.firebase.example.dataconnect.generated.instance

@Composable
fun MovieDetailScreen(
    movieId: String
) {
    var movie by remember { mutableStateOf<GetMovieByIdQuery.Data.Movie?>(null) }
    LaunchedEffect(Unit) {
        movie = MoviesConnector.instance.getMovieById.execute(
            UUID.fromString(movieId)
        ).data.movie
    }
    if (movie == null) {
        LoadingScreen()
    } else {
        MovieDetails(
            movieTitle = movie!!.title,
            movieImageUrl = movie!!.imageUrl,
            movieGenre = movie!!.genre,
            movieRating = movie!!.metadata?.rating,
            movieReleaseYear = movie!!.metadata?.releaseYear,
            movieDescription = movie!!.metadata?.description,
        )
    }
}

เรียกใช้แอป

ใน Android Studio ให้คลิกปุ่ม "เรียกใช้" เพื่อเปิดแอปในโปรแกรมจำลอง Android

7. สร้างการดัดแปลงเพื่อแทรกผู้ใช้

เมื่อแอปแสดงข้อมูลได้แล้ว ก็ถึงเวลาเพิ่มข้อมูลใหม่จากแอป คุณควรใช้ Firebase Authentication เพื่อให้ดำเนินการได้อย่างปลอดภัย

ในแอปนี้จะใช้การตรวจสอบสิทธิ์แบบไม่ระบุตัวตนเพื่อลงชื่อเข้าใช้ผู้ใช้ แต่หากต้องการให้แอปมีความปลอดภัยมากขึ้น ให้พิจารณาใช้วิธีการตรวจสอบสิทธิ์อื่น เช่น การตรวจสอบสิทธิ์ด้วยอีเมล/รหัสผ่านหรือผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์

กําหนดการกลายพันธุ์

ใน VS Code ให้เปิดไฟล์ dataconnect/connector/mutations.gql แล้วยกเลิกการคอมเมนต์ (หรือเพิ่ม) การค้นหา UpsertUser ดังนี้

# Upsert (update or insert) a user's username based on their auth.uid
mutation UpsertUser($username: String!) @auth(level: USER) {
  user_upsert(
    data: {
      id_expr: "auth.uid"
      username: $username
    }
  )
}

โทรจากแอป Android

ใน Android Studio ให้เปิดไฟล์ app/src/main/java/com/google/firebase/example/dataconnect/MainActivity.kt แล้วเรียกใช้การกลายพันธุ์ ดังนี้

import com.google.firebase.example.dataconnect.generated.execute

LaunchedEffect(Unit) {
  // If there's no user signed in, sign in an anonymous user
  if (firebaseAuth.currentUser == null) {
    firebaseAuth.signInAnonymously().await()
    val newUsername = getRandomUsername()
    MoviesConnector.instance.upsertUser.execute(newUsername)
  }
}

เรียกใช้แอป

ใน Android Studio ให้คลิกปุ่ม "เรียกใช้" เพื่อเปิดแอปในโปรแกรมจำลอง Android

8. ขอแสดงความยินดี

ขอแสดงความยินดี คุณได้เพิ่ม Firebase Data Connect ลงในแอป Android เรียบร้อยแล้ว

ตอนนี้คุณทราบขั้นตอนสําคัญที่จําเป็นสําหรับการตั้งค่าการต่อเชื่อมข้อมูล สร้างการค้นหาและการดัดแปลง และจัดการการตรวจสอบสิทธิ์ผู้ใช้แล้ว

ขั้นตอนถัดไป

ไม่บังคับ: ติดตั้งใช้งานในเวอร์ชันที่ใช้งานจริง

จนถึงตอนนี้แอปนี้ใช้เพียงโปรแกรมจำลอง Firebase หากต้องการดูวิธีทําให้แอปนี้ใช้งานได้ในโปรเจ็กต์ Firebase จริง ให้ไปที่ขั้นตอนถัดไป

9. (ไม่บังคับ) เผยแพร่แอป

จนถึงตอนนี้แอปนี้ทำงานแบบภายในทั้งหมด โดยข้อมูลทั้งหมดอยู่ในชุดโปรแกรมจำลอง Firebase ในส่วนนี้ คุณจะได้เรียนรู้วิธีกำหนดค่าโปรเจ็กต์ Firebase เพื่อให้แอปนี้ทํางานในเวอร์ชันที่ใช้งานจริง

เปิดใช้การตรวจสอบสิทธิ์ Firebase

ในคอนโซล Firebase ให้ไปที่ส่วนการตรวจสอบสิทธิ์ แล้วคลิก "เริ่มต้นใช้งาน" ไปที่แท็บวิธีการลงชื่อเข้าใช้ แล้วเลือกตัวเลือกการลงชื่อเข้าใช้แบบไม่ระบุตัวตนจากผู้ให้บริการ

เปิดใช้วิธีการลงชื่อเข้าใช้แบบไม่ระบุชื่อ แล้วคลิก "บันทึก"

ติดตั้งสคีมา Firebase Data Connect

สำคัญ: หากนี่เป็นการใช้งานสคีมาครั้งแรกในโปรเจ็กต์ กระบวนการนี้จะสร้างอินสแตนซ์ Cloud SQL PostgreSQL ซึ่งอาจใช้เวลาประมาณ 15 นาที คุณจะไม่สามารถทําให้การเผยแพร่ใช้งานได้จนกว่าอินสแตนซ์ Cloud SQL จะพร้อมใช้งานและผสานรวมกับ Firebase Data Connect แล้ว

  1. ใน UI ของส่วนขยาย Firebase Data Connect ใน VS Code ให้คลิกทำให้ใช้งานได้จริง
  2. คุณอาจต้องตรวจสอบการเปลี่ยนแปลงสคีมาและอนุมัติการแก้ไขที่อาจก่อให้เกิดความเสียหาย ระบบจะแจ้งให้คุณดำเนินการดังนี้
    • ตรวจสอบการเปลี่ยนแปลงสคีมาโดยใช้ firebase dataconnect:sql:diff
    • เมื่อพอใจกับการเปลี่ยนแปลงแล้ว ให้ใช้การเปลี่ยนแปลงโดยใช้ขั้นตอนที่เริ่มต้นโดย firebase dataconnect:sql:migrate

อินสแตนซ์ Cloud SQL for PostgreSQL จะอัปเดตด้วยสคีมาและข้อมูลที่ติดตั้งใช้งานแล้วในขั้นสุดท้าย คุณสามารถตรวจสอบสถานะได้ในคอนโซล Firebase

ตอนนี้คุณสามารถคลิก "เรียกใช้ (เวอร์ชันที่ใช้งานจริง)" ในแผง Firebase Data Connect ได้ เช่นเดียวกับที่ทำกับโปรแกรมจำลองในเครื่อง เพื่อเพิ่มข้อมูลลงในสภาพแวดล้อมเวอร์ชันที่ใช้งานจริง