【问题标题】:How to connect laravel to firebase?如何将laravel连接到firebase?
【发布时间】:2022-08-03 18:35:34
【问题描述】:

我正在使用 laravel 框架和 firebase-database,我在这两者之间建立了连接,它工作正常,我想使用 eloquent 模型来处理我正在使用这个包的数据

https://github.com/pieter365/laravel-sync-firebase

它现在已正确安装,我可以使用包中提到的模型中的特征,但是当我执行php artisan migrate 命令时,它会引发以下错误,您能帮我解决这个错误吗

 Illuminate\\Database\\QueryException 

  SQLSTATE[HY000] [1045] Access denied for user \'forge\'@\'localhost\' (using password: NO) (SQL: select * from information_schema.tables where table_schema = forge and table_name = migrations and table_type = \'BASE TABLE\')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
    708▕         // If an exception occurs when attempting to run a query, we\'ll format the error
    709▕         // message to include the bindings with SQL, which will make this exception a
    710▕         // lot more helpful to the developer instead of just the database\'s errors.
    711▕         catch (Exception $e) {
  ➜ 712▕             throw new QueryException(
    713▕                 $query, $this->prepareBindings($bindings), $e
    714▕             );
    715▕         }
    716▕     }

      +33 vendor frames 
  34  artisan:37
      Illuminate\\Foundation\\Console\\Kernel::handle()

.env

FIREBASE_CREDENTIALS=/storage/app/firebase/test-7a4b2-firebase-adminsdk-tm68z-1114d30bef.json
FIREBASE_DATABASE_URL= <my firebase db url>

数据库.php

<?php

use Illuminate\\Support\\Str;

return [

    /*
    |--------------------------------------------------------------------------
    | Default Database Connection Name
    |--------------------------------------------------------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all database work. Of course
    | you may use many connections at once using the Database library.
    |
    */

    \'default\' => env(\'DB_CONNECTION\', \'mysql\'),

    /*
    |--------------------------------------------------------------------------
    | Database Connections
    |--------------------------------------------------------------------------
    |
    | Here are each of the database connections setup for your application.
    | Of course, examples of configuring each database platform that is
    | supported by Laravel is shown below to make development simple.
    |
    |
    | All database work in Laravel is done through the PHP PDO facilities
    | so make sure you have the driver for your particular database of
    | choice installed on your machine before you begin development.
    |
    */

    \'connections\' => [

        \'sqlite\' => [
            \'driver\' => \'sqlite\',
            \'url\' => env(\'DATABASE_URL\'),
            \'database\' => env(\'DB_DATABASE\', database_path(\'database.sqlite\')),
            \'prefix\' => \'\',
            \'foreign_key_constraints\' => env(\'DB_FOREIGN_KEYS\', true),
        ],

        \'mysql\' => [
            \'driver\' => \'mysql\',
            \'url\' => env(\'DATABASE_URL\'),
            \'host\' => env(\'DB_HOST\', \'127.0.0.1\'),
            \'port\' => env(\'DB_PORT\', \'3306\'),
            \'database\' => env(\'DB_DATABASE\', \'forge\'),
            \'username\' => env(\'DB_USERNAME\', \'forge\'),
            \'password\' => env(\'DB_PASSWORD\', \'\'),
            \'unix_socket\' => env(\'DB_SOCKET\', \'\'),
            \'charset\' => \'utf8mb4\',
            \'collation\' => \'utf8mb4_unicode_ci\',
            \'prefix\' => \'\',
            \'prefix_indexes\' => true,
            \'strict\' => true,
            \'engine\' => null,
            \'options\' => extension_loaded(\'pdo_mysql\') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env(\'MYSQL_ATTR_SSL_CA\'),
            ]) : [],
        ],

        \'pgsql\' => [
            \'driver\' => \'pgsql\',
            \'url\' => env(\'DATABASE_URL\'),
            \'host\' => env(\'DB_HOST\', \'127.0.0.1\'),
            \'port\' => env(\'DB_PORT\', \'5432\'),
            \'database\' => env(\'DB_DATABASE\', \'forge\'),
            \'username\' => env(\'DB_USERNAME\', \'forge\'),
            \'password\' => env(\'DB_PASSWORD\', \'\'),
            \'charset\' => \'utf8\',
            \'prefix\' => \'\',
            \'prefix_indexes\' => true,
            \'schema\' => \'public\',
            \'sslmode\' => \'prefer\',
        ],

        \'sqlsrv\' => [
            \'driver\' => \'sqlsrv\',
            \'url\' => env(\'DATABASE_URL\'),
            \'host\' => env(\'DB_HOST\', \'localhost\'),
            \'port\' => env(\'DB_PORT\', \'1433\'),
            \'database\' => env(\'DB_DATABASE\', \'forge\'),
            \'username\' => env(\'DB_USERNAME\', \'forge\'),
            \'password\' => env(\'DB_PASSWORD\', \'\'),
            \'charset\' => \'utf8\',
            \'prefix\' => \'\',
            \'prefix_indexes\' => true,
        ],

    ],

    /*
    |--------------------------------------------------------------------------
    | Migration Repository Table
    |--------------------------------------------------------------------------
    |
    | This table keeps track of all the migrations that have already run for
    | your application. Using this information, we can determine which of
    | the migrations on disk haven\'t actually been run in the database.
    |
    */

    \'migrations\' => \'migrations\',

    /*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer body of commands than a typical key-value system
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */

    \'redis\' => [

        \'client\' => env(\'REDIS_CLIENT\', \'phpredis\'),

        \'options\' => [
            \'cluster\' => env(\'REDIS_CLUSTER\', \'redis\'),
            \'prefix\' => env(\'REDIS_PREFIX\', Str::slug(env(\'APP_NAME\', \'laravel\'), \'_\').\'_database_\'),
        ],

        \'default\' => [
            \'url\' => env(\'REDIS_URL\'),
            \'host\' => env(\'REDIS_HOST\', \'127.0.0.1\'),
            \'password\' => env(\'REDIS_PASSWORD\', null),
            \'port\' => env(\'REDIS_PORT\', \'6379\'),
            \'database\' => env(\'REDIS_DB\', \'0\'),
        ],

        \'cache\' => [
            \'url\' => env(\'REDIS_URL\'),
            \'host\' => env(\'REDIS_HOST\', \'127.0.0.1\'),
            \'password\' => env(\'REDIS_PASSWORD\', null),
            \'port\' => env(\'REDIS_PORT\', \'6379\'),
            \'database\' => env(\'REDIS_CACHE_DB\', \'1\'),
        ],

    ],

];


    标签: laravel firebase-realtime-database eloquent laravel-8 laravel-datatables


    【解决方案1】:

    使用以下包(你不能指望 NodeJs 使用这个包):

    https://github.com/googleapis/google-cloud-php-firestore

    【讨论】:

      猜你喜欢
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2019-02-19
      相关资源
      最近更新 更多