【问题标题】:Flutter Firebase Realtime Database get single data query result value nullFlutter Firebase实时数据库获取单条数据查询结果值null
【发布时间】:2023-04-03 04:51:01
【问题描述】:

路径 = 用户令牌

uid = W9aafYsF6cOPr1sMLKlnFEUcNNR2

userTokens/W9aafYsF6cOPr1sMLKlnFEUcNNR2

我想在图片中带下划线区域。我应该如何使用 Firebase 实时数据库编写查询?

结果变量为空。

import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/cupertino.dart';

class NotificationServiceTools {
  static final FirebaseDatabase firebaseDatabase = new FirebaseDatabase();

  static Future<String> getUserTokens({@required String uid}) async {
    final String result =
        (await firebaseDatabase.reference().child("userTokens/$uid").once())
            .value
            .toString();
    print("result: $result");

    return result;
  }
}

函数被调用的地方:

print(receiver);
token = await NotificationServiceTools.getUserTokens(uid: receiver);
print("token : " + token);

日志:

I/flutter ( 9447): vUpgi1QyU1UxK7tCJ5rcJqnOdaO2
I/flutter ( 9447): result : null
I/flutter ( 9447): token : null

【问题讨论】:

    标签: firebase flutter firebase-realtime-database dart


    【解决方案1】:

    试试这个,

    String result;
    await firebaseDatabase.instance
    .reference()
    .child('userTokens/$uid')
    .once()
    .then((snapshot){result=snapshot.value;});
    

    【讨论】:

    • @TheNobleBrain 根的名称是什么?确定是'userTokens/$uid' 吗?
    • @TheNobleBrain 您是否将正确的uid 作为getUserTokens() 的输入?
    • @TheNobleBrain 所以你的根节点是'userTokens/vUpgi1QyU1UxK7tCJ5rcJqnOdaO2'?您已在屏幕截图中隐藏了该部分,这很重要
    • @TheNobleBrain 为什么将“vUpgi1QyU1UxK7tCJ5rcJqnOdaO2”传递给getUserTokens()?你还没有清理root,截图中userTokens上面是什么?
    • @TheNobleBrain 是的,我想知道为什么那个特定的 uid 会被传递,即使它在您的数据库中不可用,很高兴您知道了:D
    猜你喜欢
    • 2019-09-29
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    相关资源
    最近更新 更多