Menyelesaikan masalah Isu Biasa React Native Firebase- Cloud Messaging

Mary-Kate Olsen
Lepaskan: 2024-11-01 13:43:29
asal
252 orang telah melayarinya

Troubleshooting Common Issues of React Native Firebase- Cloud Messaging

Sumber: npm @react-native-firebase/app

Adakah anda menghadapi masalah semasa melaksanakan React Native Firebase Cloud Messaging?

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:

  1. Gunakan arch -x86_64 - M1 Mac mungkin menghadapi masalah keserasian dengan CocoaPods. Jalankan arahan dengan arch -x86_64 untuk menggunakan seni bina x86_64:

pasang pod arch -x86_64

  1. Kemas kini Repositori CocoaPods- Jika anda menghadapi ralat yang berkaitan dengan versi pod lapuk, kemas kini repo CocoaPods anda:

kemas kini repo pod arch -x86_64

  1. Betulkan Ralat ffi- Anda mungkin menghadapi ralat perpustakaan ffi. Untuk membetulkannya, pasang permata ffi khusus untuk seni bina anda:

sudo arch -x86_64 permata pasang ffi

  1. Pasang Semula Pod - Selepas langkah ini, jalankan semula arahan pemasangan pod:

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');
    }
  }
}


Salin selepas log masuk
Salin selepas log masuk

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:

  • Peranti iOS fizikal biasanya diperlukan untuk menerima pemberitahuan tolak.
  • Jika anda menggunakan macOS 13 dengan Apple Silicon, anda juga boleh menggunakan Simulator iOS yang menjalankan iOS 16 untuk ujian.

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:

  • Mulakan semula atau tetapkan semula simulator dengan memadamkan semua kandungan dan tetapan.
  • Cuba semula selepas menetapkan semula, kerana kadangkala permulaan semula simulator boleh membetulkan isu tersebut.

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>
   
Salin selepas log masuk

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');
    }
  }
}


Salin selepas log masuk
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!