How to get a names List of collections indexed in a collection, in firebase in Flutter? [duplicate] - http

This question already has answers here:
Firebase (2016) Shallow Query
(2 answers)
Closed 3 years ago.
I have the next datas on real time firebase database:
example
As you see, there are more data in "animals" , "rocks" and "vegetables". I want get that names in a List of data, something like this:
List list = ["animals","rocks", "vegetables"];
I know how to do a get http request in flutter to get data doing this:
var response = await http.get('https://mydb.firebaseio.com/prueba.json');
pruebaFirebase = json.decode(response.body);
But it returns a List of collections, and I only need the name of each one names of collections.
Thanks in advance dear community.

Use the shallow query parameter of the Realtime Database REST API:
https://mydb.firebaseio.com/prueba.json?shallow=true

Related

Firebase getting a list of documents [duplicate]

This question already has answers here:
Google Firestore - How to get several documents by multiple ids in one round-trip?
(17 answers)
Closed 8 months ago.
In Firestore, if I have as list of, say, 20 document IDs, what is the best way to fetch all those documents?
I'm thinking of, for example, using something like Angolia for search and getting a list of ids back from it.
Would I need to manually get or onSnaptshot each reference, or is there a more performant/simple way to fetch a list of documents just using their ID?
Thanks!
A lot of the options depends on how your firestore is structured, and what framework you're using to encorporate firebase.
Generally speaking, querying a list can be done using the in query operator.
In the case of id querying, the array is id's, and you query by firebase.firestore.FieldPath.documentId()
import { query, where } from "firebase/firestore";
const q = query(firebase.firestore.FieldPath.documentId(), where('id', 'in', ['SOME_ID_1', 'SOME_ID_2']));

Retrive all collection except one document id Firebase [duplicate]

This question already has answers here:
Firestore: how to perform a query with inequality / not equals
(7 answers)
Closed 2 years ago.
I want to retrieve all the collections except one document id. I have following query it will get all data by validating collection field. however i want to get all data except one document.
await Firestore.instance.collection('tbl').where('id',isEqualTo:textId).getDocuments().then(
(data){
dataRowCount= data.documents.length;
}
);
Firestore doesn't offer any way to exclude documents from a query. You must can only filter for known values that you're looking for, or ranges of values. If you want to skip a document, you will have to check the query results in your code and omit the one you don't want

Flutter Firestore: How to update nested lists? [duplicate]

This question already has answers here:
Firestore Update single item in an array field
(2 answers)
Is there any way to update a specific index from the array in Firestore
(3 answers)
Closed 3 years ago.
I'm trying to implement firestore into my flutter app. My documents on firestore have an array field which has objects. These objects have an array too. It looks like this:
Topics[
{
"id": "1234"
"questions": [] <-- This field I want to update
}
]
I know that I can update fields with the updateData() function of myDocument.reference. There I can update my value inside an array like this:
mydocument.reference.updateData({
"topics.id": 1
})
This works fine for easy structures but what I need is to get a specific index of the topics array where I get the object an its questions array which I want to update. Something like this:
document.reference.updateData({
"topics[$index].questions": FieldValue.arrayUnion([q])
});

How to get partial string query matches in Firebase Cloud Firestore? [duplicate]

This question already has answers here:
Google Firestore: Query on substring of a property value (text search)
(25 answers)
Closed 3 years ago.
When I search for 'stone', I want my query to return
{ first: 'Fred', last: 'Flintstone', }
However, the docs suggest I need to search for an exact match only.
usersRef.where("last", "==", "Flintstone")
And will not return a partial match of 'stone'.
Is there a way to get partial string search matches?
This is not supported by firebase as the link you shared mentioned, probably you want to use some tool like algolia to achieve that use case, and keep it in sync with firestore using cloud functions.

Query Firestore to get documents in a range of documentIDs [duplicate]

This question already has answers here:
Google Firestore - How to get several documents by multiple ids in one round-trip?
(17 answers)
Closed 4 years ago.
I'm developing a Flutter app using Firebase and Cloud Firestore.
In Firestore I have a collections of Users.
I want to perform a query who give me a list of Users with documentId in a range.
Example
My database:
> Users --> docId1 --> {name: "Domenico"}
> --> docId2 --> {name: "Antonio"}
> --> docId3 --> {name: "Maria"}
My desidered query is something like:
Select name from Users
where documentId in (docId2, docId3)
who gives me ["Antonio", "Maria"].
On documentation I've found how to filter by a document key but not a collection by a range of ducumentId.
Can you help me to perform this query or to understand if I'm doing something wrong?
Thank you.
You can't query on a range of id.
You have to do Two distinct query
var query = firestore.collection("users").doc(docId);
But if you just want to filter on user Name you can do this
var query = firestore.collection("users").where('name', isEqualTo: 'Domenico');
This kind of query is one of the disadvantage of using firestore.

Resources