RemoteConfigButtonView.swift 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // Copyright 2024 Google LLC
  3. //
  4. // Licensed under the Apache License, Version 2.0 (the "License");
  5. // you may not use this file except in compliance with the License.
  6. // You may obtain a copy of the License at
  7. //
  8. // http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. //
  16. import FirebaseRemoteConfig
  17. import Foundation
  18. import SwiftUI
  19. struct RemoteConfigButtonView: View {
  20. @State private var turnOnRealTimeRC = false
  21. let rc = RemoteConfig.remoteConfig()
  22. @RemoteConfigProperty(key: "ios_rollouts", fallback: "unfetched") var iosRollouts: String
  23. var body: some View {
  24. NavigationView {
  25. VStack(
  26. alignment: .leading,
  27. spacing: 10
  28. ) {
  29. Button(action: {
  30. rc.fetch()
  31. }) {
  32. Text("Fetch")
  33. }
  34. Button(action: {
  35. rc.activate()
  36. }) {
  37. Text("Activate")
  38. }
  39. Text(iosRollouts)
  40. Toggle("Turn on RealTime RC", isOn: $turnOnRealTimeRC).toggleStyle(.button).tint(.mint)
  41. .onChange(of: self.turnOnRealTimeRC, perform: { value in
  42. rc.addOnConfigUpdateListener { u, e in rc.activate() }
  43. })
  44. }
  45. .navigationTitle("Remote Config Example")
  46. }
  47. }
  48. }