我正在尝试使用Firebase实时数据库作为laravel项目的数据库。我的问题是无法在我的应用程序中使用laravel的数据库外观。
我使用服务,服务接口和控制器来创建firebase数据库对象。但是如果没有DB Facade,我实际上并没有使用模型和迁移,而对我来说,唯一的方法是将数据直接放入Firebase数据库对象中。
我的Firebase服务:
class FirebaseService implements FirebaseServiceInterface
{
protected $firebase;
public function connect(){
$serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/myproject.json');
$this->firebase = (new Factory)
->withServiceAccount($serviceAccount)
->withDatabaseUri('https://myproject.firebaseio.com')
->create();
return $this->firebase;
}
}
界面:
interface FirebaseServiceInterface
{
public function connect();
}
我的模型控制器:
class ModelController extends Controller
{
//
public function index(FirebaseServiceInterface $firebase_service){
$firebase=$firebase_service->connect();
$db = $firebase->getDatabase();
$db->getReference('Models/model')
->set([
'name' => 'My Application',
'emails' => 'My email',
]);
return view('main/test');
}
}
我希望对DB Facade的引用使我有了firebase数据库,这样我就可以使用DB :: insert和php artisan migration这样的命令。