Sumber: npm @react-native-firebase/app
Mendapatkan pemberitahuan dan berjalan lancar pada kedua-dua Android dan iOS kadangkala boleh mencabar, memandangkan konfigurasi unik yang diperlukan oleh setiap platform.
Panduan ini akan membimbing anda melalui langkah penting untuk menyediakan Pemesejan Awan Firebase (FCM) dalam React Native dan menangani beberapa ralat biasa:
Mengkonfigurasi Firebase:
Muat turun GoogleService-Info.plist (iOS) dan google-services.json (Android).
Pilih fail GoogleService-Info.plist yang dimuat turun daripada komputer anda dan pastikan kotak pilihan "Salin item jika perlu" didayakan
Muat turun fail google-services.json dan letakkan di dalam projek anda di lokasi berikut:
/android/app/google-services.json.
Dayakan Pemberitahuan Tekan untuk iOS dalam Xcode:
Keupayaan Pemberitahuan Tolak perlu ditambahkan pada projek. Ini boleh dilakukan melalui pilihan "Keupayaan" di bawah tab "Menandatangani & Keupayaan":
Klik pada butang "Keupayaan".
Cari "Pemberitahuan Tolak".
Setelah dipilih, keupayaan akan ditunjukkan di bawah keupayaan lain yang didayakan. Jika tiada pilihan muncul semasa mencari, keupayaan itu mungkin sudah didayakan
Keupayaan Mod Latar Belakang perlu didayakan, bersama-sama dengan kedua-dua pengambilan Latar Belakang dan sub-mod pemberitahuan Jauh. Ini boleh ditambah melalui pilihan "Keupayaan" pada tab "Menandatangani & Keupayaan".
Sekarang, pastikan kedua-dua sub-mod "Pengambilan latar belakang" dan "Pemberitahuan jauh" didayakan
Panduan Persediaan untuk React Native FCM:
Ikuti panduan persediaan Pemesejan Awan Firebase rasmi. Panduan ini termasuk langkah penting untuk bermula dengan menghantar dan menerima pemberitahuan pada Android dan iOS. Setelah anda melengkapkan langkah ini, anda boleh menguji pemberitahuan terus daripada Firebase Console di bawah Pemesejan dengan mengarang kempen baharu.
Nota:
Bagi pengguna M1 Mac, isu dengan CocoaPods adalah perkara biasa apabila menyediakan React Native Firebase. Berikut ialah beberapa penyelesaian pantas:
pasang pod arch -x86_64
kemas kini repo pod arch -x86_64
sudo arch -x86_64 permata pasang ffi
pasang pod arch -x86_64
Mengikut langkah ini akan membantu menyelesaikan isu khusus seni bina pada M1 Mac apabila memasang dan mengurus pod untuk projek React Native anda.
Nota:
Untuk peranti Android 13, anda perlu meminta kebenaran masa jalan untuk pemberitahuan tolak secara eksplisit. Tambahkan kebenaran berikut pada AndroidManifest.xml anda:
Kemudian, dalam kod anda, minta kebenaran pemberitahuan pada masa jalan. Anda boleh mengendalikan kebenaran Android secara langsung seperti ini:
import { Platform, PermissionsAndroid } from 'react-native'; async function requestNotificationPermission() { // Version >= 33(`~project/build.gradle`) if (Platform.OS === 'android' ) { const granted = await PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS, ); if (granted === PermissionsAndroid.RESULTS.GRANTED) { console.log('Notification permission granted'); } else { console.log('Notification permission denied'); } } }
Panggil requestNotificationPermission() semasa pemulaan apl atau sebelum melanggan pemberitahuan untuk memastikan pengguna telah memberikan kebenaran.
Memastikan Keserasian:
Sebelum menyelam ke dalam persediaan, pastikan pakej @react-native-firebase/app dan @react-native-firebase/message dipasang dalam projek anda dan serasi.
Versi yang konsisten adalah penting untuk mengelakkan isu penyepaduan yang tidak dijangka. Untuk mengesahkan keserasian versi, rujuk kepada Dokumentasi Keluaran React Native Firebase rasmi.
Pastikan anda memasang versi terkini kedua-dua pakej untuk mengelakkan isu keserasian.
Jika anda menguji pada peranti iOS, perhatikan perkara berikut:
Petua Penyelesaian Masalah:
Selepas melengkapkan persediaan, anda mungkin masih menghadapi masalah. Berikut ialah beberapa masalah dan penyelesaian biasa:
Simulator Tidak Menerima Pemberitahuan:
Jika pemberitahuan tidak muncul dalam simulator iOS, cuba yang berikut:
Selepas menyelesaikan masalah ini sendiri selama beberapa jam, saya mendapati bahawa mulakan semula pantas adalah penyelesaian yang paling mudah!
Semak Langkah dan Isu Biasa:
Semak semula langkah persediaan dalam panduan Firebase untuk memastikan semuanya dikonfigurasikan dengan betul.
Ralat Memasang CocoaPods:
Jika anda menghadapi ralat pemasangan, seperti:
<br> error: RPC failed; curl stream was reset<br> error: 6428 bytes of body are still expected<br>
Ini mungkin disebabkan oleh isu rangkaian. Cuba tukar daripada Wi-Fi kepada hotspot mudah alih (atau sebaliknya) dan cuba semula pemasangan. Kadangkala, menukar rangkaian anda boleh menyelesaikan isu pemasangan pod berkaitan sambungan. Jika ini tidak menyelesaikan masalah, anda mungkin perlu mencuba petua penyelesaian masalah tambahan, seperti mengosongkan cache CocoaPods atau mengemas kini Xcode.
Membenarkan URL HTTP dalam iOS (Keselamatan Pengangkutan Apl):
Jika anda menggunakan URL HTTP untuk permintaan API (berbanding dengan HTTPS), anda perlu mengemas kini fail Info.plist iOS anda untuk mengelakkan sambungan disekat disebabkan oleh sekatan Keselamatan Pengangkutan Apl (ATS). Tambahkan baris berikut dalam fail Info.plist anda:
import { Platform, PermissionsAndroid } from 'react-native'; async function requestNotificationPermission() { // Version >= 33(`~project/build.gradle`) if (Platform.OS === 'android' ) { const granted = await PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS, ); if (granted === PermissionsAndroid.RESULTS.GRANTED) { console.log('Notification permission granted'); } else { console.log('Notification permission denied'); } } }
Ini akan membolehkan apl anda membuat permintaan HTTP tanpa gangguan. Berhati-hati dengan tetapan ini dalam apl pengeluaran dan cuba hadkannya kepada persekitaran pembangunan jika boleh.
Pastikan Keserasian Keselamatan Pengangkutan Apl (ATS):
Untuk iOS, pastikan mana-mana titik akhir HTTPS yang anda gunakan adalah mematuhi ATS. Jika anda sedang menguji dengan pelayan pementasan atau sijil yang ditandatangani sendiri, pastikan ia serasi dengan ATS, kerana Firebase memerlukan sambungan selamat untuk berkomunikasi dengan APN (Perkhidmatan Pemberitahuan Apple Push).
Kesimpulan:
Menyediakan Pemesejan Awan Firebase dalam React Native boleh menjadi mudah, tetapi kesilapan persediaan kecil atau keanehan konfigurasi peranti boleh membawa kepada masalah. Mengikuti panduan dan petua penyelesaian masalah ini akan membantu anda mendapatkan pemberitahuan berjalan dengan lancar. Untuk sebarang isu tambahan, anda boleh menyemak dokumentasi rasmi, forum atau perbincangan GitHub untuk mencari penyelesaian yang dikongsi oleh pembangun lain.
Selamat pengekodan !!!!
Atas ialah kandungan terperinci Menyelesaikan masalah Isu Biasa React Native Firebase- Cloud Messaging. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!