void AddDataDataTypes()

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]
}