ยินดีต้อนรับกลับมา! เราได้เรียนรู้วิธีการอ่านและเขียนข้อมูลไปยัง Firebase Real
Time Database แล้ว
ตอนนี้เราจะอ่านและเขียนวัตถุที่กำหนดเองไปยังฐานข้อมูลแบบเรียลไทม์ของเรา
ฉันจะสร้างคลาส Java ใหม่ที่ทำหน้าที่เป็นวัตถุที่กำหนดเอง
ฉันจะตั้งชื่อว่าผู้ใช้
และภายในผู้ใช้คนนี้ ฉันจะสร้างตัวแปรสองตัว ชื่อตัวแปรเป็นสตริงชื่อ และสตริง
กด Alt+insert ในอีเมลเพื่อสร้างคอนสตรัคเตอร์
มีตัวแปรสองตัวนี้ และฉันต้องการสร้างตัวรับและตัวตั้งค่า
แล้วเรามาเริ่มกิจกรรมหลักกันเถอะ
และที่นี่ฉันต้องการแสดงความคิดเห็นเกี่ยวกับค่าที่ตั้งไว้ชุดนี้
สร้างผู้ใช้ใหม่หนึ่งคน ชื่อผู้ใช้คือ Jack และอีเมลคือ Jack@gmail.com
และในทำนองเดียวกัน ในการเขียนค่าไปยังตำแหน่งฐานข้อมูลเฉพาะ ฉันจะใช้เมธอด set
value, กำหนดค่าจุดอ้างอิงของฉัน และคุณจะเห็นว่า set
value สามารถรับวัตถุเป็นอาร์กิวเมนต์ได้ โดยผู้ใช้หนึ่งจะถูกแทรก หยุดแอปพลิเคชันและรันมันอีกครั้ง
และมีข้อผิดพลาดเพราะฉันไม่จำเป็นต้องใช้สิ่งนี้ และข้อความอ้างอิงจะยอมรับเฉพาะค่าเท่านั้น
ดังนั้นฉันต้องเปลี่ยนเส้นทาง
เอกสารอ้างอิงที่ฉันต้องการเพื่อสร้างเอกสารอ้างอิงอีกฉบับ
ฉันจะตั้งชื่อว่าผู้ใช้
มาวิ่งกันอีกครั้งและมาเปิด Firebase ของเรา
เมื่อสร้างแอปพลิเคชันเสร็จแล้ว คุณจะเห็นโหนดผู้ใช้ถูกสร้างขึ้น โดยตั้งชื่อเป็น Jack
และอีเมลเป็น Jack ที่ gmail.com
และสาเหตุที่แอปพลิเคชันของเราล่มเพราะการอ้างอิงของฉันกำลังอ้างอิงถึงข้อความการอ้างอิงนี้
ไม่ใช่ผู้ใช้
และหากข้อมูลอ้างอิงใหม่ที่มีวัตถุที่กำหนดเองจะไม่สามารถใช้ได้โดยการใช้วิธีนี้
ดังนั้นคุณใช้ฟังค์ชันผู้ฟังเหตุการณ์เพิ่มค่าของฉันโดยใช้จุดอ้างอิงของฉัน และคุณจะได้รับค่าทุกครั้งที่คุณมีค่าที่ง่าย
ข้อมูลที่ง่าย ซึ่งถูกแทรกเข้าไปในฐานข้อมูล
เมื่อใดก็ตามที่คุณมีคีย์ค่า คุณใช้ Snapchat จุด
รับคุณค่า
ด้วยวิธีนี้ ทุกครั้งที่คุณสร้างและได้รับวัตถุที่กำหนดเองเช่นนี้ คุณจำเป็นต้องใช้วิธีที่แตกต่างกัน
ดังนั้นในการอ่านวัตถุที่กำหนดเองจากโหนด เราจะใช้การอ้างอิงเป็นผู้ใช้
ไม่ใช่ข้อความถึงโหนด แต่เป็นผู้ใช้และข้อความ
ฉันต้องการรับอีเมลในโหนดของผู้ใช้
ขึ้นไปตรวจสอบผู้ใช้ที่อ้างอิง และที่นี่ฉันต้องการแสดงความคิดเห็นนี้เพราะฉันไม่จำเป็นต้องตั้งค่าการอ้างอิงอีกครั้ง
เนื่องจากได้ตั้งค่าและอัปโหลดแล้ว
ฉันจำเป็นต้องอ่านวัตถุที่กำหนดเองนี้
ดังนั้นจะอ่านวัตถุที่กำหนดเองนี้ในเมธอด on data change ได้อย่างไร?
คล้ายกับที่เราทำมาก่อนหน้านี้ในจุดอ้างอิงของฉันที่เพิ่มเมธอด listener ของเหตุการณ์ และภายใน
on data change ฉันจำเป็นต้องสร้างวัตถุที่คล้ายกับที่เราแทรกเข้าไปในฐานข้อมูลของเรา
มันเรียกว่า user user user เท่ากับ snapshot ที่นี่ dot get value
และประเภทของวัตถุที่กำหนดเองคืออะไร? มันเป็นประเภท user dot class
ที่นี่รับค่าก่อนที่เราจะระบุ string dot class
ที่นี่ฉันกำลังใช้ user dot class ที่อ้างถึงวัตถุที่กำหนดเองนี้และการอ้างอิงที่กำหนดเอง
ตอนนี้ฉันจะใช้ตัวแปรผู้ใช้ตัวนี้
ดังนั้นฉันจึงได้รับมันจากสแนปช็อต
ฉันต้องการแสดงมันในมุมมองข้อความ
ดังนั้น ให้ตั้งค่าข้อความในมุมมองข้อความ
และที่นี่อีเมลจะเป็นผู้ใช้จุดgetอีเมล
วิ่งกันเถอะ
และแอปก็ล่ม
ทำไม
ถ้าเราไปที่ logcat ให้เลื่อนลงไปด้านล่าง
เราสามารถเห็นได้ว่าผู้ใช้ไม่ได้กำหนดคอนสตรัคเตอร์ที่ไม่มีอาร์กิวเมนต์
ทุกครั้งที่คุณใช้ Firebase
ในแอปพลิเคชันของคุณ คุณควรระบุคอนสตรัคเตอร์ที่ว่างเปล่าหรือคอนสตรัคเตอร์ที่ไม่มีอาร์กิวเมนต์
คลิกที่คอนสตรัคเตอร์
เลือกไม่มี และคุณจะเห็นคอนสตรักเตอร์ของผู้ใช้ถูกสร้างขึ้น
ลองทำอีกครั้ง
เริ่มแล้ว
นี่คือแอปพลิเคชันของเรา
ข้อความเปลี่ยนจาก Hello world เป็น แจ็ค ที่ gmail.com
เราประสบความสำเร็จในการอ่านและเขียนวัตถุที่กำหนดเองไปยังฐานข้อมูล Firebase Realtime