in firestore/android/FirestoreSnippetsCpp/app/src/main/cpp/snippets.cpp [181:219]
void AddDataDataTypes(firebase::firestore::Firestore* db) {
using firebase::Future;
using firebase::Timestamp;
using firebase::firestore::Error;
using firebase::firestore::FieldValue;
using firebase::firestore::MapFieldValue;
// Firestore lets you write a variety of data types inside a document,
// including strings, booleans, numbers, dates, null, and nested arrays and
// objects. Firestore always stores numbers as doubles, regardless of
// what type of number you use in your code.
// [START data_types]
MapFieldValue doc_data{
{"stringExample", FieldValue::String("Hello world!")},
{"booleanExample", FieldValue::Boolean(true)},
{"numberExample", FieldValue::Double(3.14159265)},
{"dateExample", FieldValue::Timestamp(Timestamp::Now())},
{"arrayExample", FieldValue::Array({FieldValue::Integer(1),
FieldValue::Integer(2),
FieldValue::Integer(3)})},
{"nullExample", FieldValue::Null()},
{"objectExample",
FieldValue::Map(
{{"a", FieldValue::Integer(5)},
{"b", FieldValue::Map(
{{"nested", FieldValue::String("foo")}})}})},
};
db->Collection("data").Document("one").Set(doc_data).OnCompletion(
[](const Future<void>& future) {
if (future.error() == Error::kErrorOk) {
std::cout << "DocumentSnapshot successfully written!" << std::endl;
} else {
std::cout << "Error writing document: " << future.error_message()
<< std::endl;
}
});
// [END data_types]
}