Rumah  >  Soal Jawab  >  teks badan

Pemberitahuan Laravel yang menunjukkan "Token pendaftaran bukan token pendaftaran FCM yang sah" apabila disepadukan dengan FCM

Saya telah menyepadukan pemberitahuan FCM (Firebase Cloud Messaging) dengan projek Laravel saya. Saya di User 模型中添加了方法 routeNotificationForFcm . Sistem pemberitahuan berfungsi dengan baik apabila menentukan token peranti firebase secara langsung dalam kaedah, tetapi gagal apabila mengakses token daripada pangkalan data.

Kod kerja yang ditambah adalah seperti berikut.

public function routeNotificationForFcm()
{
    return ['dJQqgKlETpqCB3uxHtfUbL:APA91bFdrcXZMNH0iMjkXMoop_b_nI3xF92DU0P1nrHVQsTDK4w-OH5QR6BsnWIV-wSxSV7avzuBmLVizNyrRcKfAQz6H66JEP9rWKUeIi7m7wEZwRiuW_WdCW_LaZajdFZlxfCUonCL'];
}

Kod yang tidak berfungsi adalah seperti berikut (pertanyaan pangkalan data)

public function routeNotificationForFcm()
{
    return $this->from('fcm_tokens')->where('user_id', $user->id)->pluck('device_token');
}

Mesej ralat yang dipaparkan ialah Token pendaftaran bukan token pendaftaran FCM yang sah

P粉985686557P粉985686557285 hari yang lalu480

membalas semua(1)saya akan balas

  • P粉301523298

    P粉3015232982023-12-14 14:09:21

    Mengikut Laravel dokumentasi < code>pluck kembalikan CollectionCollection - 所以你只需要在查询/集合上调用 pluck 后调用 toArray() 即可返回数组 - jadi anda hanya perlu memanggil pluck

    pada pertanyaan/collection dan kemudian panggil toArray()

    untuk mengembalikan array $user->id, itu sahaja Seperti yang anda lakukan sebelum ini dengan token olok-olok. $this

    public function routeNotificationForFcm()
    {
        return $this->from('fcm_tokens')->where('user_id', $user->id)->pluck('device_token')->toArray();
    }

    Anda juga memanggil $user->id

    , tetapi tidak dalam skop ini. Penyelesaiannya mudah, anda perlu lulus nilai atau dapatkan nilai daripada $this

    .

    public function routeNotificationForFcm()
    {
        return $this->from('fcm_tokens')->where('user_id', $this->id)->pluck('device_token')->toArray();
    }
    FcmTokenTetapi saya secara peribadi mengesyorkan anda untuk menentukan hubungan yang berasingan untuk iniUser模型的相关令牌的array
    public function fcmTokens()
    {
        return $this->hasMany(FcmToken::class);
    }

    FcmToken

    - Hanya tekaan tentang cara anda menamakan model anda. Anda kemudian boleh menggunakannya semula seperti ini untuk mengembalikan array🎜 token berkaitan untuk model User🎜 tertentu
    public function routeNotificationForFcm()
    {
        return $this->fcmTokens()->pluck('device_token')->toArray();
    }
    🎜Akhir sekali, jika anda menstruktur kod anda seperti ini, anda akan mempunyai perhubungan umum dan menggunakan perhubungan ini untuk menjadikan kod anda lebih fleksibel. 🎜

    balas
    0
  • Batalbalas