Apple প্ল্যাটফর্মের জন্য Firebase অ্যাপ পরীক্ষা করুন

1। পরিচিতি

ফায়ারবেস অ্যাপ চেক আপনার ব্যাকএন্ড সংস্থানগুলিকে অপব্যবহার থেকে রক্ষা করতে সাহায্য করে, যেমন বিলিং জালিয়াতি এবং ফিশিং, বৈধ অ্যাপ এবং ডিভাইসগুলি থেকে অনুরোধ আসে তা নিশ্চিত করে। এটি আপনার সংস্থানগুলিকে সুরক্ষিত রাখতে ফায়ারবেস পরিষেবা এবং আপনার নিজস্ব ব্যাকএন্ড পরিষেবা উভয়ের সাথেই কাজ করে৷

আপনি Firebase ডকুমেন্টেশনে Firebase অ্যাপ চেক সম্পর্কে আরও জানতে পারেন।

অ্যাপ চেক একটি অ্যাপ এবং/অথবা ডিভাইসের অখণ্ডতা যাচাই করতে প্ল্যাটফর্ম-নির্দিষ্ট পরিষেবা ব্যবহার করে। এই পরিষেবাগুলিকে সত্যায়ন প্রদানকারী বলা হয়। এরকম একটি প্রদানকারী হল অ্যাপলের অ্যাপ অ্যাটেস্ট পরিষেবা, যা অ্যাপ চেক অ্যাপল অ্যাপ এবং ডিভাইসের সত্যতা যাচাই করতে ব্যবহার করতে পারে।

আপনি কি নির্মাণ করবেন

এই কোডল্যাবে, আপনি একটি বিদ্যমান নমুনা অ্যাপ্লিকেশনে অ্যাপ চেক যোগ করবেন এবং প্রয়োগ করবেন যাতে প্রকল্পের রিয়েলটাইম ডেটাবেস অবৈধ অ্যাপ এবং ডিভাইসগুলি দ্বারা অ্যাক্সেস করা থেকে সুরক্ষিত থাকে।

আপনি কি শিখবেন

  • কিভাবে একটি বিদ্যমান অ্যাপে ফায়ারবেস অ্যাপ চেক যোগ করবেন।
  • বিভিন্ন ফায়ারবেস অ্যাপ কিভাবে ইন্সটল করবেন প্রত্যয়ন প্রদানকারী চেক করুন।
  • কিভাবে আপনার অ্যাপের জন্য App Attest কনফিগার করবেন।
  • অ্যাপ ডেভেলপমেন্টের সময় সিমুলেটরে আপনার অ্যাপ পরীক্ষা করার জন্য ডিবাগ প্রত্যয়ন প্রদানকারীকে কীভাবে কনফিগার করবেন।

আপনি কি প্রয়োজন হবে

  • Xcode 13.3.1 বা তার পরে
  • একটি Apple ডেভেলপার অ্যাকাউন্ট যা আপনাকে নতুন অ্যাপ শনাক্তকারী তৈরি করতে দেয়
  • একটি iOS/iPadOS ডিভাইস যা অ্যাপ অ্যাটেস্ট সমর্থন করে ( অ্যাপ অ্যাটেস্ট API উপলব্ধতা সম্পর্কে জানুন)

2. স্টার্টার প্রকল্প পান

iOS সংগ্রহস্থলের জন্য Firebase Quickstart-এ বিভিন্ন Firebase পণ্য প্রদর্শনের জন্য নমুনা অ্যাপ রয়েছে। আপনি এই কোডল্যাবের ভিত্তি হিসেবে SwiftUI-এর জন্য ফায়ারবেস ডেটাবেস কুইকস্টার্ট অ্যাপ ব্যবহার করবেন।

কমান্ড লাইন থেকে iOS সংগ্রহস্থলের জন্য ফায়ারবেস কুইকস্টার্ট ক্লোন করুন:

git clone https://github.com/firebase/quickstart-ios.git
cd quickstart-ios

Xcode এ রিয়েলটাইম ডেটাবেস SwiftUI Quickstart অ্যাপ প্রকল্প খুলুন:

cd database/DatabaseExampleSwiftUI/DatabaseExample
xed .

3. আপনার অ্যাপে অ্যাপ চেক যোগ করুন

  1. প্রকল্পের নির্ভরতা সমাধানের জন্য সুইফট প্যাকেজ ম্যানেজারের জন্য অপেক্ষা করুন।
  2. DatabaseExample (iOS) অ্যাপ টার্গেটের সাধারণ ট্যাবটি খুলুন। তারপর, ফ্রেমওয়ার্ক, লাইব্রেরি এবং এমবেডেড কন্টেন্ট বিভাগে, + বোতামে ক্লিক করুন।
  3. FirebaseAppCheck যোগ করতে নির্বাচন করুন।

4. অ্যাপ চেক প্রোভাইডার ফ্যাক্টরি তৈরি এবং ইনস্টল করুন

  1. Shared ফাইল গ্রুপে, AppCheck নামে একটি নতুন গ্রুপ যুক্ত করুন।
  2. এই গোষ্ঠীর ভিতরে, একটি পৃথক ফাইলে একটি ফ্যাক্টরি ক্লাস তৈরি করুন, যেমন MyAppCheckProviderFactory.swift , এটি DatabaseExample (iOS) টার্গেটে যোগ করার বিষয়টি নিশ্চিত করুন:
    import Firebase
    
    class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
      func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
        #if targetEnvironment(simulator)
          // App Attest is not available on simulators.
          // Use a debug provider.
          return AppCheckDebugProvider(app: app)
        #else
          // Use App Attest provider on real devices.
          return AppAttestProvider(app: app)
        #endif
      }
    }
    
  3. এর পরে, DatabaseExampleApp.swift এ, FirebaseAppCheck আমদানি করতে ভুলবেন না এবং অ্যাপ চেক প্রদানকারী কারখানা হিসাবে MyAppCheckProviderFactory ক্লাসের একটি উদাহরণ সেট করুন।
    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct DatabaseExampleApp: App {
      init() {
        // Set an instance of MyAppCheckProviderFactory as an App Check
        // provider factory before configuring Firebase.
        AppCheck.setAppCheckProviderFactory(MyAppCheckProviderFactory())
        FirebaseApp.configure()
      }
      ...
    }
    

5. একটি ফায়ারবেস প্রকল্প তৈরি এবং কনফিগার করুন৷

আপনার iOS প্রকল্পে অ্যাপ চেক ব্যবহার করতে, আপনাকে Firebase কনসোলে এই ধাপগুলি অনুসরণ করতে হবে:

  • একটি ফায়ারবেস প্রকল্প সেট আপ করুন।
  • Firebase প্রকল্পে আপনার iOS অ্যাপ যোগ করুন।
  • ফায়ারবেস প্রমাণীকরণ কনফিগার করুন।
  • রিয়েলটাইম ডেটাবেস ইনস্ট্যান্স শুরু করুন যা আপনি সুরক্ষিত করতে যাচ্ছেন।
  • অ্যাপ চেক কনফিগার করুন।

একটি প্রকল্প তৈরি করুন

প্রথমে আপনাকে একটি ফায়ারবেস প্রকল্প তৈরি করতে হবে।

  1. ফায়ারবেস কনসোলে , প্রকল্প যোগ করুন নির্বাচন করুন।
  2. আপনার প্রকল্পের নাম দিন App Check Codelab
  3. অবিরত ক্লিক করুন.
  4. এই প্রকল্পের জন্য Google Analytics অক্ষম করুন এবং তারপরে প্রকল্প তৈরি করুন ক্লিক করুন।

একটি রিয়েলটাইম ডাটাবেস ইনস্ট্যান্স তৈরি করুন

এখন, Firebase কনসোলের রিয়েলটাইম ডেটাবেস বিভাগে নেভিগেট করুন।

  1. ডাটাবেস তৈরির কর্মপ্রবাহ শুরু করতে ডেটাবেস তৈরি করুন বোতামে ক্লিক করুন।
  2. ডাটাবেসের জন্য ডিফল্ট অবস্থান ( us-central1 ) অপরিবর্তিত রাখুন এবং Next এ ক্লিক করুন।
  3. নিশ্চিত করুন যে লকড মোড নির্বাচন করা হয়েছে এবং আপনার ডাটাবেসের নিরাপত্তা বিধিগুলি সক্ষম করতে সক্ষম বোতামটি ক্লিক করুন৷
  4. রিয়েলটাইম ডেটাবেস ব্রাউজারের নিয়ম ট্যাবে নেভিগেট করুন এবং ডিফল্ট নিয়মগুলিকে নিম্নলিখিতগুলির সাথে প্রতিস্থাপন করুন:
    {
        "rules": {
            // User profiles are only readable/writable by the user who owns it
            "users": {
                "$UID": {
                    ".read": "auth.uid == $UID",
                    ".write": "auth.uid == $UID"
                }
            },
            // Posts can be read by anyone but only written by logged-in users.
            "posts": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    // UID must match logged in user and is fixed once set
                    "uid": {
                        ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                    },
                    // User can only update own stars
                    "stars": {
                        "$UID": {
                            ".validate": "auth.uid == $UID"
                        }
                    }
                }
            },
            // User posts can be read by anyone but only written by the user that owns it,
            // and with a matching UID
            "user-posts": {
                ".read": true,
                "$UID": {
                    "$POSTID": {
                        ".write": "auth.uid == $UID",
                        ".validate": "data.exists() || newData.child('uid').val() == auth.uid"
                    }
                }
            },
            // Comments can be read by anyone but only written by a logged in user
            "post-comments": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    "$COMMENTID": {
                        // UID must match logged in user and is fixed once set
                        "uid": {
                            ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                        }
                    }
                }
            }
        }
    }
    
  5. আপডেট করা নিরাপত্তা বিধি সক্রিয় করতে পাবলিশ বোতামে ক্লিক করুন।

Firebase এর সাথে সংযুক্ত হওয়ার জন্য আপনার iOS অ্যাপ প্রস্তুত করুন

একটি ফিজিক্যাল ডিভাইসে নমুনা অ্যাপ চালাতে সক্ষম হওয়ার জন্য, আপনাকে আপনার ডেভেলপমেন্ট টিমে প্রোজেক্ট যোগ করতে হবে যাতে Xcode আপনার জন্য প্রয়োজনীয় প্রভিশনিং প্রোফাইল পরিচালনা করতে পারে। আপনার ডেভেলপার অ্যাকাউন্টে নমুনা অ্যাপ যোগ করতে এই ধাপগুলি অনুসরণ করুন:

  1. এক্সকোডে, প্রকল্প নেভিগেটরে DatabaseExample প্রকল্পটি নির্বাচন করুন।
  2. DatabaseExample (iOS) টার্গেট সিলেক্ট করুন এবং Signing & Capabilities ট্যাব খুলুন।
  3. আপনি "DatabaseExample (iOS)-এর জন্য সাইন করার জন্য একটি ডেভেলপমেন্ট টিমের প্রয়োজন" বলে একটি ত্রুটি বার্তা দেখতে পাবেন৷
  4. বান্ডেল শনাক্তকারীকে একটি অনন্য শনাক্তকারীতে আপডেট করুন। এটি অর্জন করার সবচেয়ে সহজ উপায় হল আপনার ওয়েবসাইটের বিপরীত ডোমেন নাম ব্যবহার করা, উদাহরণস্বরূপ com.acme.samples.firebase.quickstart.DatabaseExample (দয়া করে এই আইডিটি ব্যবহার করবেন না; পরিবর্তে আপনার নিজস্ব, অনন্য আইডি বেছে নিন)।
  5. আপনার উন্নয়ন দল নির্বাচন করুন.
  6. আপনি জানবেন সবকিছু ঠিকঠাক হয়েছে যখন Xcode "প্রভিশনিং প্রোফাইল: Xcode পরিচালিত প্রোফাইল" এবং এই লেবেলের পাশে একটি সামান্য তথ্য আইকন প্রদর্শন করে। এই আইকনে ক্লিক করলে প্রভিশনিং প্রোফাইল সম্পর্কে আরও বিস্তারিত দেখাবে।

আপনার iOS অ্যাপ সংযুক্ত করুন

আপনার অ্যাপ কানেক্ট করার গভীর ব্যাখ্যার জন্য, আপনার iOS প্রোজেক্টে Firebase যোগ করার ডকুমেন্টেশন দেখুন। শুরু করতে, Firebase কনসোলে এই প্রধান ধাপগুলি অনুসরণ করুন:

  1. আপনার নতুন প্রকল্পের প্রজেক্ট ওভারভিউ স্ক্রীন থেকে, + অ্যাপ যোগ করুন বোতামে ক্লিক করুন এবং তারপরে আপনার ফায়ারবেস প্রকল্পে একটি নতুন iOS অ্যাপ যোগ করতে iOS+ আইকনে ক্লিক করুন।
  2. আপনার অ্যাপের বান্ডেল আইডি লিখুন (আগের বিভাগে আপনি যেটি সংজ্ঞায়িত করেছেন সেটি ব্যবহার করুন, যেমন com.acme.samples.firebase.quickstart.DatabaseExample - মনে রাখবেন এটি অবশ্যই একটি অনন্য শনাক্তকারী হতে হবে)
  3. রেজিস্টার অ্যাপে ক্লিক করুন।
  4. Firebase একটি GoogleService-Info.plist ফাইল তৈরি করে যাতে আপনার অ্যাপের জন্য প্রয়োজনীয় সমস্ত Firebase মেটাডেটা থাকে।
  5. ফাইল ডাউনলোড করতে ডাউনলোড GoogleService-Info.plist- এ ক্লিক করুন।
  6. Xcode-এ, আপনি দেখতে পাবেন যে প্রকল্পটিতে ইতিমধ্যে GoogleService-Info.plist নামে একটি ফাইল রয়েছে। প্রথমে এই ফাইলটি মুছুন - পরবর্তী ধাপে আপনি এটিকে আপনার নিজস্ব ফায়ারবেস প্রকল্পের সাথে প্রতিস্থাপন করবেন।
  7. GoogleService-Info.plist ফাইলটি কপি করুন যা আপনি পূর্ববর্তী ধাপে আপনার Xcode প্রকল্পের রুট ফোল্ডারে ডাউনলোড করেছেন এবং এটিকে DatabaseExample (iOS) লক্ষ্যে যোগ করুন, নিশ্চিত করুন যে এটির নাম GoogleService-Info.plist
  8. নিবন্ধন প্রবাহের অবশিষ্ট ধাপগুলির মাধ্যমে ক্লিক করুন। যেহেতু নমুনা প্রকল্পটি ইতিমধ্যেই সঠিকভাবে সেট আপ করা হয়েছে, তাই আপনাকে কোডে কোনো পরিবর্তন করতে হবে না।

ফায়ারবেস প্রমাণীকরণ কনফিগার করুন

উফফ! এটি এখন পর্যন্ত সেটআপের বেশ কিছুটা, তবে শক্ত করে ধরে রাখুন! আপনি যদি Firebase-এ নতুন হয়ে থাকেন, তাহলে আপনি একটি কর্মপ্রবাহের প্রয়োজনীয় অংশগুলি দেখেছেন যেগুলির সাথে আপনি শীঘ্রই পরিচিত হবেন৷

এখন, আপনি এই অ্যাপের জন্য Firebase প্রমাণীকরণ কনফিগার করবেন।

প্রমাণীকরণ ইমেল/পাসওয়ার্ড সাইন-ইন প্রদানকারী সক্ষম করুন৷

  1. এখনও Firebase কনসোলে , কনসোলের প্রমাণীকরণ বিভাগটি খুলুন।
  2. আপনার প্রকল্পের জন্য Firebase প্রমাণীকরণ সেট আপ করতে শুরু করুন ক্লিক করুন।
  3. সাইন-ইন পদ্ধতি ট্যাব নির্বাচন করুন।
  4. নেটিভ প্রদানকারী বিভাগে ইমেল/পাসওয়ার্ড নির্বাচন করুন।
  5. ইমেল/পাসওয়ার্ড সক্ষম করুন এবং সংরক্ষণ করুন ক্লিক করুন।

একটি পরীক্ষা ব্যবহারকারী যোগ করুন

  1. প্রমাণীকরণ বিভাগের ব্যবহারকারী ট্যাবটি খুলুন।
  2. ব্যবহারকারী যোগ করুন ক্লিক করুন.
  3. আপনার পরীক্ষার ব্যবহারকারীর জন্য একটি ইমেল এবং একটি পাসওয়ার্ড নির্দিষ্ট করুন, তারপর ব্যবহারকারী যোগ করুন ক্লিক করুন।

একটি স্পিন জন্য অ্যাপ্লিকেশন নিন

Xcode এ ফিরে যান এবং iOS সিমুলেটরে অ্যাপ্লিকেশনটি চালান। আপনার তৈরি করা পরীক্ষার ব্যবহারকারীর জন্য ইমেল এবং পাসওয়ার্ড দিয়ে সাইন ইন করুন। একবার সাইন ইন করলে, একটি পোস্ট তৈরি করুন, একটি বিদ্যমান পোস্টে একটি মন্তব্য পোস্ট করুন এবং পোস্টগুলিকে তারকা/তারামুক্ত করুন৷

6. একটি অ্যাপ অ্যাটেস্ট প্রত্যয়ন প্রদানকারী কনফিগার করুন৷

এই ধাপে, আপনি Firebase কনসোলে অ্যাপ অ্যাটেস্ট প্রদানকারী ব্যবহার করার জন্য অ্যাপ চেক কনফিগার করবেন।

  1. Firebase কনসোলে, কনসোলের অ্যাপ চেক বিভাগে নেভিগেট করুন।
  2. শুরু করুন ক্লিক করুন।
  3. অ্যাপস ট্যাবে, আপনার অ্যাপের বিশদ বিবরণ প্রসারিত করতে ক্লিক করুন।
  4. অ্যাপ অ্যাটেস্ট কনফিগার করতে অ্যাপ অ্যাটেস্টে ক্লিক করুন, তারপরে আপনার অ্যাপল ডেভেলপার অ্যাকাউন্টের টিম আইডি লিখুন (আপনি অ্যাপল ডেভেলপার পোর্টালের সদস্যপদ বিভাগে এটি খুঁজে পেতে পারেন): 1645f7a369b678c2.png
  5. সংরক্ষণ করুন ক্লিক করুন.

এটির সাথে, আপনার কাছে একটি কার্যকরী ফায়ারবেস প্রকল্প রয়েছে যা আমাদের নতুন অ্যাপের সাথে সংযুক্ত এবং অ্যাপ চেক সক্ষম করা হয়েছে।

আপনি এখন আমাদের নির্দিষ্ট প্রত্যয়ন পরিষেবা কনফিগার করতে প্রস্তুত! এই ওয়ার্কফ্লো সম্পর্কে আরও জানতে, iOS-এ অ্যাপ অ্যাটেস্ট সহ অ্যাপ চেক সক্ষম করুন দেখুন।

7. আপনার আবেদনের জন্য অ্যাপ অ্যাটেস্ট কনফিগার করুন

এখন Firebase অ্যাপ চেক SDK-এ হাত পেতে এবং কিছু ক্লায়েন্ট কোড প্রয়োগ করার সময় এসেছে৷

প্রথমত, আপনাকে Xcode প্রকল্পটি কনফিগার করতে হবে যাতে SDK আপনার অ্যাপ থেকে পাঠানো অনুরোধগুলি আপনার অ্যাপের বৈধ উদাহরণ থেকে আসে তা নিশ্চিত করতে Apple এর App Attest API ব্যবহার করতে পারে।

  1. এক্সকোড প্রকল্পে আপনার অ্যাপ লক্ষ্যের জন্য অ্যাপ অ্যাটেস্ট ক্ষমতা যোগ করুন:
  2. আপনার অ্যাপ টার্গেট সেটিংসে সাইনিং এবং ক্যাপাবিলিটিস ট্যাব খুলুন
  3. " + " বোতামে ক্লিক করুন
  4. ডায়ালগে, অ্যাপ অ্যাটেস্ট ক্ষমতা খুঁজুন এবং নির্বাচন করুন ae84cd988a5fab31.png
  5. একটি ফাইল DatabaseExample (iOS).entitlements পূর্ববর্তী ধাপটি সম্পাদন করার পরে আপনার Xcode প্রকল্পের রুট ফোল্ডারে উপস্থিত হবে।
  6. DatabaseExample (iOS).entitlements ফাইলে, App Attest Environment কী-এর মান production.

একবার আপনি এই পদক্ষেপগুলি শেষ করে এবং একটি শারীরিক iOS ডিভাইসে (iPhone/iPad) অ্যাপটি চালু করলে, অ্যাপটি এখনও রিয়েলটাইম ডেটাবেস অ্যাক্সেস করতে সক্ষম হবে। পরবর্তী ধাপে, আপনি অ্যাপ চেক প্রয়োগ করবেন, যা অবৈধ অ্যাপ এবং ডিভাইস থেকে পাঠানো অনুরোধগুলিকে ব্লক করবে।

এই কর্মপ্রবাহ সম্পর্কে আরও জানতে, iOS-এ অ্যাপ অ্যাটেস্ট সহ অ্যাপ চেক সক্ষম করুন দেখুন।

8. iOS সিমুলেটরের জন্য একটি ডিবাগ প্রত্যয়ন প্রদানকারী কনফিগার করুন৷

Firebase অ্যাপ চেক ডিবাগ প্রদানকারী ডেভেলপমেন্ট প্রক্রিয়া চলাকালীন iOS সিমুলেটর সহ অবিশ্বস্ত পরিবেশে Firebase অ্যাপ চেক এনফোর্সমেন্টের মাধ্যমে অ্যাপ্লিকেশন পরীক্ষা করা সম্ভব করে তোলে। এর পরে, আপনাকে ডিবাগ প্রদানকারীকে একসাথে কনফিগার করতে হবে।

আপনার অ্যাপে Firebase ডিবাগ প্রদানকারী ইনস্টল করুন

বিকল্প 1: শর্তসাপেক্ষে আপনার কারখানায় ডিবাগ প্রদানকারীর একটি উদাহরণ তৈরি করুন

আপনি অ্যাপ চেক প্রোভাইডার ফ্যাক্টরি তৈরি করার সময় এটির বেশিরভাগই করেছেন। এই ধাপে, আপনি ডিবাগ প্রদানকারীর দ্বারা উত্পন্ন স্থানীয় ডিবাগ গোপন লগিং যোগ করবেন, যাতে আপনি ডিবাগ করার উদ্দেশ্যে Firebase কনসোলে অ্যাপটির এই উদাহরণটি নিবন্ধন করতে পারেন।

নিম্নলিখিত কোড সহ MyAppCheckProviderFactory.swift আপডেট করুন:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if targetEnvironment(simulator)
    // App Attest is not available on simulators.
    // Use a debug provider.
    let provider = AppCheckDebugProvider(app: app)

    // Print only locally generated token to avoid a valid token leak on CI.
    print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

    return provider
#else
    // Use App Attest provider on real devices.
    return AppAttestProvider(app: app)
#endif
  }
}

এই পদ্ধতিটি পরিবেশের উপর নির্ভর করে অ্যাপ চেক কনফিগার করার জন্য আমাদের আরও নমনীয়তা দেয়। উদাহরণস্বরূপ, আপনি ডিভাইস চেক বা OS সংস্করণে একটি কাস্টম প্রত্যয়ন প্রদানকারীর মতো অন্যান্য প্রমাণীকরণ প্রদানকারী ব্যবহার করতে পারেন যেখানে অ্যাপের সত্যতা উপলব্ধ নেই৷ নীচে একটি উদাহরণ দেখুন:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
      #if targetEnvironment(simulator)
      // App Attest is not available on simulators.
      // Use a debug provider.
      let provider = AppCheckDebugProvider(app: app)

      // Print only locally generated token to avoid a valid token leak on CI.
      print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

      return provider
      #else
      if #available(iOS 14.0, *) {
        // Use App Attest provider on real devices.
        return AppAttestProvider(app: app)
      } else {
        return DeviceCheckProvider(app: app)
      }
      #endif
  }
}

বিকল্প 2: AppCheckDebugProviderFactory ইনস্টল করুন

সহজ ক্ষেত্রে আপনি Firebase অ্যাপ্লিকেশন উদাহরণ কনফিগার করার আগে সাময়িকভাবে বা শর্তসাপেক্ষে AppCheckDebugProviderFactory ইনস্টল করতে পারেন:

init() {
#if targetEnvironment(simulator)
  let providerFactory = AppCheckDebugProviderFactory()
#else
  let providerFactory = MyAppCheckProviderFactory()
#endif

  AppCheck.setAppCheckProviderFactory(providerFactory)

  FirebaseApp.configure()
}

এটি আপনার নিজের অ্যাপ চেক প্রদানকারী কারখানা তৈরি করার জন্য কোডের কয়েকটি লাইন সংরক্ষণ করবে।

Firebase কনসোলে আপনার ডিবাগ গোপন নিবন্ধন করুন

আপনার iOS সিমুলেটর থেকে ডিবাগ গোপন পান

  1. আপনি যদি AppCheckDebugProviderFactory (উপরে 2 বিকল্প) ইনস্টল করতে বেছে নেন, তাহলে আপনাকে অ্যাপ লঞ্চ আর্গুমেন্টে -FIRDebugEnabled যোগ করে আপনার অ্যাপের জন্য ডিবাগ লগিং সক্ষম করতে হবে: f1c6b477a373e144.png
  2. একটি সিমুলেটরে আপনার অ্যাপ চালান
  3. এক্সকোড কনসোলে ডিবাগ গোপন খুঁজুন। আপনি এটি দ্রুত খুঁজে পেতে কনসোল ফিল্টার ব্যবহার করতে পারেন: d4c65af93e369c55.png

দ্রষ্টব্য: প্রথম অ্যাপ লঞ্চের সময় আপনার সিমুলেটরের জন্য ডিবাগ সিক্রেট তৈরি করা হয় এবং ব্যবহারকারীর ডিফল্টে সংরক্ষণ করা হয়। আপনি যদি অ্যাপটি সরিয়ে দেন, সিমুলেটর রিসেট করেন বা অন্য সিমুলেটর ব্যবহার করেন, একটি নতুন ডিবাগ সিক্রেট তৈরি হবে। নতুন ডিবাগ গোপন নিবন্ধন নিশ্চিত করুন.

ডিবাগ গোপন নিবন্ধন করুন

  1. Firevbase কনসোলে ফিরে, অ্যাপ চেক বিভাগে যান।
  2. অ্যাপস ট্যাবে, আপনার অ্যাপের বিশদ বিবরণ প্রসারিত করতে ক্লিক করুন।
  3. ওভারফ্লো মেনুতে, ডিবাগ টোকেন পরিচালনা করুন নির্বাচন করুন: d77c8ff768a00b4b.png
  4. আপনি Xcode কনসোল থেকে অনুলিপি করেছেন এমন গোপনীয়তা যোগ করুন এবং তারপরে সংরক্ষণ করুন ক্লিক করুন f845c97b86f694d0.png

এই পদক্ষেপগুলির পরে, আপনি সিমুলেটরে অ্যাপটি ব্যবহার করতে পারেন এমনকি অ্যাপ চেক প্রয়োগ করেও।

দ্রষ্টব্য: ডিবাগ প্রদানকারীকে বিশেষভাবে ডিবাগ গোপন ফাঁস প্রতিরোধে সাহায্য করার জন্য ডিজাইন করা হয়েছে। বর্তমান পদ্ধতির সাথে, আপনাকে আপনার সোর্স কোডে ডিবাগ সিক্রেট সংরক্ষণ করতে হবে না।

এই প্রবাহ সম্পর্কে আরও বিশদ বিবরণ ডকুমেন্টেশনে পাওয়া যাবে - iOS এ ডিবাগ প্রদানকারীর সাথে অ্যাপ চেক ব্যবহার করুন দেখুন।

9. ফায়ারবেস রিয়েলটাইম ডেটাবেসের জন্য অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করুন

আপাতত, আমাদের অ্যাপটি একটি AppCheckProviderFactory ঘোষণা করে যা প্রকৃত ডিভাইসের জন্য একটি AppAttestProvider প্রদান করে। একটি ফিজিক্যাল ডিভাইসে চলাকালীন, আপনার অ্যাপটি সত্যায়ন করবে এবং ফলাফলগুলি Firebase ব্যাকএন্ডে পাঠাবে। যাইহোক, Firebase ব্যাকএন্ড এখনও যেকোন ডিভাইস, iOS সিমুলেটর, একটি স্ক্রিপ্ট ইত্যাদি থেকে অনুরোধ গ্রহণ করে। এই মোডটি উপযোগী হয় যখন আপনার কাছে এখনও অ্যাপ চেক ছাড়াই আপনার অ্যাপের পুরানো সংস্করণের ব্যবহারকারী থাকে এবং আপনি অ্যাক্সেস প্রয়োগ করতে চান না। এখনো চেক

এখন, শুধুমাত্র বৈধ ডিভাইস থেকে Firebase অ্যাপ অ্যাক্সেস করা যায় তা নিশ্চিত করতে আপনাকে অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করতে হবে। অ্যাপ চেক ইন্টিগ্রেশন ছাড়া পুরানো অ্যাপ সংস্করণগুলি কাজ করা বন্ধ করে দেবে একবার আপনি Firebase প্রকল্পের জন্য এনফোর্সমেন্ট সক্ষম করলে।

  1. অ্যাপ চেক বিভাগে ফায়ারবেস কনসোলে, এর বিশদ বিবরণ প্রসারিত করতে রিয়েলটাইম ডেটাবেসে ক্লিক করুন।
  2. এনফোর্স ক্লিক করুন।

64e6a81fa979b635.png

  1. নিশ্চিতকরণ ডায়ালগে তথ্য পড়ুন, এবং তারপর প্রয়োগ করুন ক্লিক করুন।

এই পদক্ষেপগুলি সম্পন্ন করার পরে, শুধুমাত্র বৈধ অ্যাপগুলি ডাটাবেস অ্যাক্সেস করতে সক্ষম হবে। অন্য সব অ্যাপ ব্লক করা হবে।

একটি অবৈধ অ্যাপ দিয়ে রিয়েলটাইম ডেটাবেস অ্যাক্সেস করার চেষ্টা করুন

অ্যাপ্লিকেশান চেক এনফোর্সমেন্ট দেখতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. DatabaseExampleApp এ আপনার অ্যাপ এন্ট্রি পয়েন্টের init পদ্ধতিতে অ্যাপ চেক রেজিস্ট্রেশন কোড কমেন্ট করে অ্যাপ চেক রেজিস্ট্রেশন বন্ধ করুন।
  2. ডিভাইস > সমস্ত সামগ্রী এবং সেটিংস মুছুন নির্বাচন করে সিমুলেটরটি পুনরায় সেট করুন। এটি সিমুলেটরটি মুছে ফেলবে (এবং ডিভাইস টোকেনটি বাতিল করবে)।
  3. সিমুলেটরে আবার অ্যাপটি চালান।
  4. আপনি এখন নিম্নলিখিত ত্রুটি বার্তা দেখতে হবে:
    [FirebaseDatabase][I-RDB034005] Firebase Database connection was forcefully killed by the server.  Will not attempt reconnect. Reason: Invalid appcheck token.
    

অ্যাপ চেক পুনরায় সক্ষম করতে, নিম্নলিখিতগুলি করুন:

  1. DatabaseExampleApp এ অ্যাপ চেক রেজিস্ট্রেশন কোড আন-কমেন্ট করুন।
  2. অ্যাপটি রিস্টার্ট করুন।
  3. Xcode এর কনসোলে নতুন অ্যাপ চেক টোকেন নোট নিন।
  4. Firebase কনসোলে আপনার অ্যাপের অ্যাপ চেক সেটিংসে ডিবাগ টোকেন নিবন্ধন করুন।
  5. অ্যাপটি আবার চালান।
  6. আপনি আর একটি ত্রুটি বার্তা দেখতে পাবেন না, এবং অ্যাপে নতুন পোস্ট এবং মন্তব্য যোগ করতে সক্ষম হওয়া উচিত।

10. অভিনন্দন!

9785d32f18b995d2.gif

এখন আপনি জানেন কিভাবে:

  • একটি বিদ্যমান প্রকল্পে অ্যাপ চেক যোগ করুন
  • আপনার অ্যাপের প্রোডাকশন সংস্করণের জন্য একটি অ্যাপ অ্যাটেস্ট প্রত্যয়ন প্রদানকারী কনফিগার করুন
  • একটি সিমুলেটরে আপনার অ্যাপ পরীক্ষা করতে একটি ডিবাগ প্রত্যয়ন প্রদানকারী কনফিগার করুন৷
  • আপনার ফায়ারবেস প্রকল্পের জন্য কখন অ্যাপ চেক প্রয়োগ করতে হবে তা জানতে অ্যাপ সংস্করণ রোলআউট পর্যবেক্ষণ করুন
  • অ্যাপ চেক এনফোর্সমেন্ট সক্ষম করুন

পরবর্তী পদক্ষেপ

Firebase রিমোট কনফিগার কোডল্যাব ব্যবহার করে ধীরে ধীরে রোলআউট ফায়ারবেস অ্যাপ চেক-এ আপনার ব্যবহারকারীদের কাছে ধীরে ধীরে রোলআউট করতে রিমোট কনফিগারেশন কীভাবে ব্যবহার করবেন তা শিখুন

এই অন্যান্য সম্পদ আপনি সহায়ক হতে পারে

এই কোডল্যাবে বর্ণিত সেটআপটি বেশিরভাগ ক্ষেত্রেই কাজ করবে, তবে প্রয়োজনে অ্যাপ চেক আপনাকে আরও নমনীয়তার অনুমতি দেয় - আরও বিশদ বিবরণের জন্য নিম্নলিখিত লিঙ্কগুলি দেখুন: