Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Dapatkan Senarai Nama Subkoleksi dalam Cloud Firestore?

Bagaimanakah Saya Boleh Dapatkan Senarai Nama Subkoleksi dalam Cloud Firestore?

Susan Sarandon
Lepaskan: 2024-11-29 21:07:11
asal
671 orang telah melayarinya

How Can I Retrieve a List of Subcollection Names in Cloud Firestore?

Mengakses Nama Subkoleksi dalam Cloud Firestore

Menyenaraikan subkoleksi dalam dokumen ialah keperluan biasa untuk mengatur dan menavigasi data yang disimpan dalam struktur hierarki Cloud Firestore . Walau bagaimanapun, dalam SDK pelanggan (termasuk Web, iOS dan Android), mendapatkan semula senarai lengkap subkoleksi tidak disokong secara langsung.

Penghadan Sebelah Pelanggan:

Seperti yang dinyatakan dalam dokumentasi rasmi, "mendapatkan semula senarai koleksi tidak boleh dilakukan dengan perpustakaan klien mudah alih/web." Pilihan reka bentuk ini bertujuan untuk meningkatkan keselamatan dengan mengehadkan akses kepada nama subkoleksi, terutamanya untuk tugas pentadbiran yang dilakukan dalam persekitaran pelayan yang dipercayai.

Dalam SDK klien, mengakses dokumen hanya mengembalikan nama medan dan nilai, tidak termasuk sebarang nama subkoleksi . Sebagai contoh, coretan kod berikut hanya akan log nama medan, tetapi bukan nama subkoleksi:

rootRef.doc('aDocument').get()
  .then(doc => {

    // only logs [ "someField", "anotherField" ], no collections
    console.log( Object.keys(doc.data()) )
  })
Salin selepas log masuk

Penyelesaian Sisi Pelayan:

Walau bagaimanapun, dalam pelayan SDK sisi, seperti Node.js, mengakses nama subkoleksi disokong. Untuk Node.js, kaedah ListCollectionIds menawarkan cara untuk mendapatkan semula nama subkoleksi dalam dokumen.

var firestore = require('firestore.v1beta1');

var client = firestore.v1beta1({
  // optional auth parameters.
});

// Iterate over all elements.
var formattedParent = client.anyPathPath("[PROJECT]", "[DATABASE]", "[DOCUMENT]", "[ANY_PATH]");

client.listCollectionIds({parent: formattedParent}).then(function(responses) {
    var resources = responses[0];
    for (var i = 0; i < resources.length; ++i) {
        // doThingsWith(resources[i])
    }
})
.catch(function(err) {
    console.error(err);
});
Salin selepas log masuk

Kaedah ini mengembalikan tatasusunan rentetan yang mewakili nama subkoleksi dalam dokumen yang ditentukan.

Pendekatan Alternatif:

Jika akses terus kepada nama subkoleksi adalah penting dalam persekitaran pihak pelanggan, pertimbangkan untuk menstruktur semula data anda supaya nama subkoleksi boleh disimpulkan atau diperoleh secara logik daripada struktur dokumen. Pendekatan ini membolehkan anda mengatasi had dengan anggun.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Senarai Nama Subkoleksi dalam Cloud Firestore?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan