小编Nel*_*tin的帖子

Firestore查询子集合

我以为我读过您可以使用新的Firebase Firestore查询子集合,但我没有看到任何示例.例如,我通过以下方式设置了Firestore:

  • 舞蹈[收集]
    • danceName
    • 歌曲[收藏]
      • 歌名

我怎样才能查询"查找songName =='X'的所有舞蹈"

firebase google-cloud-firestore

102
推荐指数
5
解决办法
4万
查看次数

在头文件中声明struct

我想在头文件中声明一个结构,以便我可以在我的源文件中使用它.我究竟做错了什么?我希望能够从任何函数访问我的结构.

info.h

#ifndef INFO_H
#define INFO_H

typedef struct info
{
   int mem_size;
   int start_loc;
   int used_space;
   int free_space;
} INFO;
#endif
Run Code Online (Sandbox Code Playgroud)

test.c的

#include <stdio.h>
#include <stdlib.h>
#include <info.h>

#define F_first 1
#define F_last 2
#define F_data_int 3
#define F_data_char 4
#define F_data_float 5
#define F_print 6

void * f(int code);

int main() {

INFO in;
in.mem_size = 8;
f(F_last, 0,0);
return(0);
}

void * f(int code) {
printf("%d", in.mem_size);
}
Run Code Online (Sandbox Code Playgroud)

c struct header-files

8
推荐指数
1
解决办法
3万
查看次数

Android LRUCache检索

我在Android中实现了一个存储对象的标准LRUCache.每个键都是与存储的Object关联的唯一ObjectId.我的问题是从缓存中检索Object的唯一方法是ObjectId(没有迭代器).实现getAll()方法的最佳方法是什么?另一种选择是将所有ObjectIds存储在某个列表的列表中,因此我可以迭代列表并获取所有对象 - 但是保存所有ObjectIds的最佳方法是什么?

谢谢!

android caching iterator lru android-lru-cache

5
推荐指数
3
解决办法
2032
查看次数

防止联合登录中出现重复的用户名

我有 Cognito 设置,支持多个身份提供商(Cognito 用户池、Facebook 和 Google)登录。在我的用户池配置中,我将电子邮件用作用户名。所需的功能是让用户名在所有身份提供者中都是唯一的。即如果用户使用 Facebook 登录并且他们的 facebook 电子邮件是“user@test.com”,然后他们使用 Google 登录并且他们的谷歌电子邮件是“user@test.com”,那么他们应该无法登录或他们的联合身份应该合并。

这是连接设备的用户管理。我不希望用户在登录 Facebook 时设置一些设备,然后使用 Google 登录并且无法从他们的 Facebook 帐户看到他们的设备。

我知道这会变得很复杂,因为您只需一个电话号码就可以创建一个 Facebook 帐户。

我知道 Cognito 用户池中有一个预身份验证触发器,但是当我使用联合身份登录时它似乎没有触发。无论我使用哪个身份提供者(用户池、Facebook、谷歌),是否有我可以使用的触发器?

谢谢,

facebook amazon-web-services amazon-cognito aws-userpools

5
推荐指数
0
解决办法
265
查看次数

更新 Cognito 用户池/AWS 资源

我正在使用无服务器框架来部署 AWS 资源(用户池、身份池、Dynamo 表)。我知道一旦创建了用户池(以及类似的 Dynamo 索引),您就不能对其进行更改。我想知道更新这些类型的资源而不删除用户/数据的最佳实践是什么?值得庆幸的是,无服务器在部署时发现了问题

不允许更新属性 - UserPoolName

但我听说有人因不小心更新用户池而删除用户。

有什么建议么?

amazon-web-services amazon-cognito serverless-framework aws-userpools

4
推荐指数
1
解决办法
2334
查看次数

检查输入文件是否是 C 中的有效文件

我正在尝试使用 open() 在 c 中打开一个文件,并且我需要检查该文件是否是常规文件(它不能是目录或块文件)。每次我运行 open() 时,我返回的文件描述符都是 3 - 即使我没有输入有效的文件名!

这是我所拥有的

/*
* Checks to see if the given filename is 
* a valid file
*/
int isValidFile(char *filename) {
    // We assume argv[1] is a filename to open
    int fd;
    fd = open(filename,O_RDWR|O_CREAT,0644);
    printf("fd = %d\n", fd);
    /* fopen returns 0, the NULL pointer, on failure */

}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何验证输入文件?谢谢!

c file system-calls

3
推荐指数
1
解决办法
9426
查看次数

具有自定义布局的SwitchPreference监听器

我正在尝试在"设置"页面中使用SwitchPreference,但我无法让侦听器工作.我正在使用自定义小部件布局来设置切换样式,因为我找不到如何使用主题来实现这一点.在我的settings.xml中,我有以下内容:

<SwitchPreference
            android:key="uitestmode"
            android:summary="Enable to display test data in fragments"
            android:title="UI Test Mode"
            android:widgetLayout="@layout/widget_custom_switch_on_off" >
</SwitchPreference>
Run Code Online (Sandbox Code Playgroud)

我的SettingsFragment看起来像:

SwitchPreference uiTestModePref = (SwitchPreference) findPreference("uitestmode");
uiTestModePref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        Log.d(preference.getKey(), newValue.toString());
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

和我的交换机的自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<Switch xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/custom_switch_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:textColor="@android:color/white"
    android:textIsSelectable="false"
    android:textSize="18sp"
    android:textOn="On"
    android:textOff="Off"
    android:textStyle="bold"
    android:thumb="@drawable/carcast_switch_inner_holo_dark"
    android:track="@drawable/carcast_switch_track_holo_dark" />
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我单击开关时,不会调用侦听器.有谁知道为什么以及如何解决它?

android preferencefragment android-switch

2
推荐指数
1
解决办法
4817
查看次数

带有 JWT 令牌的 Google Cloud Storage JSON API

我正在尝试使用 Google Cloud Storage 的 JSON API 从 Google Cloud Storage 检索文件。我不允许使用 SDK。是否可以从 ServiceAccount.json 文件创建 JWT 并使用 JWT 访问 Google Cloud Storage 中的文件?我在 node.js 中有一个从服务帐户生成 JWT 的脚本,但我不确定观众是否正确

const jwt = require('jsonwebtoken');
const serviceAccount = require('./serviceAccount.json');
const issuedAt = Math.floor(Date.now() / 1000);

const TOKEN_DURATION_IN_SECONDS = 3600;

let params = {
    'iss': serviceAccount.client_email,
    'sub': serviceAccount.client_email,
    'aud': serviceAccount.project_id,
    'iat': issuedAt,
    'exp': issuedAt + TOKEN_DURATION_IN_SECONDS,
};

let options = {
    algorithm: 'RS256',
    header: {
        'kid': serviceAccount.private_key_id,
        'typ': 'JWT',
        'alg': 'RS256',
    },
};

let token …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage google-cloud-platform

2
推荐指数
1
解决办法
2257
查看次数

Resources$NotFoundException 包含动态导航图

我有一个动态功能模块,它有自己的嵌套导航图。我还有一个动态功能模块,它只是一个片段。如果您有一个带有自己的导航图的动态功能模块,我知道您需要使用include-dynamic标签。当我构建应用程序并将应用程序部署到 Play 商店进行内部测试时,动态模块下载正确。但是,如果我在本地构建/运行 - 当我尝试导航到包含导航图的动态功能模块时,应用程序会崩溃。我以为在本地运行时一切都被捆绑了?有什么我想念的吗?

我得到的错误是 android.content.res.Resources$NotFoundException: com.xyz.app_name.two:navigation/two_navigation

main_navigation_graph

<!-- this works locally. module does not contain a nav graph -->
<fragment
    android:id="@+id/OneFragment"
    android:name="com.xyz.app_name.one.OneFragment"
    android:label="{nickname}"
    app:moduleName="one"
    tools:layout="@layout/one_fragment">
    <argument
        android:name="nickname"
        app:argType="string" />
</fragment>

<!-- this doesn't work locally -->
<include-dynamic
    android:id="@+id/two_graph"
    app:graphPackage="com.xyz.app_name.two"
    app:graphResName="two_navigation"
    app:moduleName="two" />
Run Code Online (Sandbox Code Playgroud)

feature_two_graph

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@id/two_graph"
    app:moduleName="two"
    app:startDestination="@id/twoFragment">

    <fragment
        android:id="@+id/twoFragment"
        android:name="com.xyz.app_name.two.TwoFragment"
        android:label="{nickname}"
        tools:layout="@layout/two_fragment">
        <argument
            android:name="nickname"
            app:argType="string" />
        <action
            android:id="@+id/action_twoFragment_to_dialogFragment"
            app:destination="@id/dialogFragment" />
    </fragment>

    <dialog
        android:id="@+id/dialogFragment"
        android:name="com.xyz.app_name.two.ui.DialogFragment"
        android:label="bottom_sheet"
        tools:layout="@layout/bottom_sheet" />

</navigation>
Run Code Online (Sandbox Code Playgroud)

android android-jetpack android-architecture-navigation android-jetpack-navigation dynamic-feature-module

2
推荐指数
1
解决办法
336
查看次数

使用AsyncTask从错误的线程异常调用

即使我把它扔进AsyncTask的DoInBackground方法,我仍然会得到一个CalledFromWrongThreadException!任何人都可以告诉我为什么以及如何解决它?

/**
     * Recognizes key words in responseTexts and runs the appropriate function
     * @param responseText
     */
    private void responseHandler(String responseText) {
        if(responseText.startsWith("Notes", 0)) {
            notes.add(responseText);
            new DownloadFilesTask().execute("WriteInternal" , null, null);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的AsyncTask类

private class DownloadFilesTask extends AsyncTask<String, Void, String> {
    protected String doInBackground(String... command) {
    if(command[0].equals("WriteInternal") {
        //write to internal storage
    FileOutputStream fOut = null;
    OutputStreamWriter osw = null;
    try{
        fOut = openFileOutput("notes.txt", Context.MODE_PRIVATE);
        osw = new OutputStreamWriter(fOut);
        for (int i = 0; i < notes.size(); i++){
            osw.write(notes.get(i) …
Run Code Online (Sandbox Code Playgroud)

android asyncsocket thread-exceptions android-asynctask

1
推荐指数
1
解决办法
9084
查看次数

SQLiteException:表联系人没有列年龄 - Android

我正在尝试在Android中的SQLite数据库中创建一个表.我把所有东西都搞定了,但它一直告诉我,我没有列"年龄",当我清楚的时候!有人可以帮忙吗?

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "contactsManager";

// Contacts table name
private static final String TABLE_CONTACTS = "contacts";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";
private static final String KEY_AGE = "age";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating …
Run Code Online (Sandbox Code Playgroud)

database sqlite android

0
推荐指数
1
解决办法
1494
查看次数

方案 Zip 功能

我需要在Scheme中编写一个充当拉链的函数 - 这意味着它需要两个列表并从两个列表中创建一个“拉链”,这样

(zip '(a b c) '(1 2 3)) => ((a 1) (b 2) (c 3))
Run Code Online (Sandbox Code Playgroud)

此外,它获取第 n 个位置的每个元素并将它们配对在一起。

我对计划相当陌生,所以任何帮助将不胜感激!谢谢!

scheme list zipper

-1
推荐指数
1
解决办法
2137
查看次数