aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/src/firebase/firestore/auth/token.h
diff options
context:
space:
mode:
authorGravatar zxu <zxu@google.com>2018-02-20 12:25:39 -0500
committerGravatar GitHub <noreply@github.com>2018-02-20 12:25:39 -0500
commit7a4a2ea10844afd6a58dace46854fae74399f55c (patch)
treebb6115c271d6fac490cb5720a79fcc7de21d2de9 /Firestore/core/src/firebase/firestore/auth/token.h
parenta9f3f35d483f1031ef2e2860aeda921f56e1bf08 (diff)
replacing FSTGetTokenResult by C++ Token implementation (#805)
* replacing Auth/FSTUser by C++ auth implementation * address changes * replacing FSTGetTokenResult by C++ Token implementation * address changes * address changes * fix another const& v.s. dispatch bug * fix more const& v.s. dispatch bug zxu123 committed * fix * passing by value in callback
Diffstat (limited to 'Firestore/core/src/firebase/firestore/auth/token.h')
-rw-r--r--Firestore/core/src/firebase/firestore/auth/token.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/Firestore/core/src/firebase/firestore/auth/token.h b/Firestore/core/src/firebase/firestore/auth/token.h
index f3b7363..ff8d2f0 100644
--- a/Firestore/core/src/firebase/firestore/auth/token.h
+++ b/Firestore/core/src/firebase/firestore/auth/token.h
@@ -20,6 +20,7 @@
#include <string>
#include "Firestore/core/src/firebase/firestore/auth/user.h"
+#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
#include "absl/strings/string_view.h"
namespace firebase {
@@ -45,6 +46,7 @@ class Token {
/** The actual raw token. */
const std::string& token() const {
+ FIREBASE_ASSERT(is_valid_);
return token_;
}
@@ -56,9 +58,26 @@ class Token {
return user_;
}
+ /**
+ * Whether the token is a valid one.
+ *
+ * ## Portability notes: Invalid token is the equivalent of nil in the iOS
+ * token implementation. We use value instead of pointer for Token instance in
+ * the C++ migration.
+ */
+ bool is_valid() const {
+ return is_valid_;
+ }
+
+ /** Returns an invalid token. */
+ static const Token& Invalid();
+
private:
+ Token();
+
const std::string token_;
const User user_;
+ const bool is_valid_;
};
} // namespace auth