اذهب إلى المحتوى
  • 0

فايربيس وفلاتر

معاذ المقالح

السؤال

Recommended Posts

  • 0

من أجل جلب بيانات مستخدم محدد من Firebase في Flutter، يمكنك استخدام Firebase Realtime Database أو Firebase Firestore باستخدام حزمتي `firebase_database` أو `cloud_firestore`.

مثلا باستخدام باستخدام Firebase Firestore سيكون بهذا الشكل:

import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class UserScreen extends StatelessWidget {
  final String userId;

  UserScreen({required this.userId});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('User Data'),
      ),
      body: FutureBuilder<DocumentSnapshot>(
        future: FirebaseFirestore.instance.collection('users').doc(userId).get(),
        builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return Center(child: CircularProgressIndicator());
          }
          if (snapshot.hasError) {
            return Center(child: Text('Error: ${snapshot.error}'));
          }
          if (!snapshot.hasData || !snapshot.data!.exists) {
            return Center(child: Text('User not found!'));
          }

          var userData = snapshot.data!.data() as Map<String, dynamic>;
          return ListView(
            children: [
              ListTile(
                title: Text('Name: ${userData['name']}'),
              ),
              ListTile(
                title: Text('Email: ${userData['email']}'),
              ),
              // يمكنك عرض المزيد من البيانات هنا
            ],
          );
        },
      ),
    );
  }
}

ففي هذا المثال، يتم تحميل بيانات المستخدم المحدد (باستخدام `userId`) من مجموعة المستخدمين في Firebase Firestore، ثم يتم عرضها في واجهة المستخدم باستخدام `ListView`. يرجى استبدال `users` بمسار مجموعة المستخدمين الخاصة بك في Firebase Firestore، لكن يجب على المستخدم الذي تحاول جلب بياناته أن يكون لديه إذن الوصول إلى البيانات في قاعدة البيانات وإلا فلن يتم  الأمر.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحبا معاذ
للوصول إلى بيانات محددة لمستخدم من Firebase باستخدام فلاتر (Flutter)
يجب عليك استخدام Firebase SDK لـ Flutter

1.إعداد Firebase:
   - قم بإضافة مشروع Firebase إلى مشروع Flutter الخاص بك عبر موقع https://console.firebase.google.com/
   - حمل ملف google-services.json وضعه في مجلد android/app/ (لنظام Android)وملف GoogleService-Info.plistوضعه في مجلد ios/ (لنظام iOS)

2. تثبيت Firebase SDK لـ Flutter:
   - افتح ملف pubspec.yaml في مشروعك وأضف تبعيات Firebase

firebase_core: ^latest_version
firebase_auth: ^latest_version
cloud_firestore: ^latest_version


   قم بتشغيل flutter pub get لتثبيت هذه التبعيات
3. تهيئة Firebase:
   - في ملف main.dart أو أي ملف تريد فيه استخدام Firebase قم بتهيئة Firebase
 

import 'package:firebase_core/firebase_core.dart';

   void main() async {
     WidgetsFlutterBinding.ensureInitialized();
     await Firebase.initializeApp();
     runApp(MyApp());
 }

4. استخدام Firestore:
   - قم بتهيئة Firestore للوصول إلى قاعدة البيانات في هذا المثال سنفترض أنك تستخدم Firestore

  

import 'package:cloud_firestore/cloud_firestore.dart';

final FirebaseFirestore _firestore = FirebaseFirestore.instance;

5. استعلام Firestore:
   - يمكنك استخدام استعلام للوصول إلى بيانات مستخدم محدد على سبيل المثال إذا كان لديك مجموعة users تحتوي على وثائق تحتوي على حقول مثل "name" و "email" يمكنك القيام بشكل مثل

  

String userId = "user123"; // يمكنك استبداله بمعرف المستخدم الفعلي
   DocumentSnapshot userSnapshot = await _firestore.collection("users").doc(userId).get();

   if (userSnapshot.exists) {
     Map<String, dynamic> userData = userSnapshot.data() as Map<String, dynamic>;
     print("User Name: ${userData['name']}");
     print("User Email: ${userData['email']}");
   } else {
     print("User not found!");
   }


وايضا يمكن انشاء collection داخل doc

تم التعديل في بواسطة Mahmoud Hassan19
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...